希尔排序算法
内部排序
直接插入排序算法
折半插入排序
外部排序
// 希尔排序voidShellSort(intA[],intn){// 记录步长for(intdk=n/2;dk>=1;dk=dk/2){for(inti=dk+1;i<=n;i++){if(A[i]<A[i-dk]){A[0]=A[i];intj;for(j=i-dk;A[0]<A[j]&&j>0;j-=dk){A[j+dk]=A[j];}A[j+dk]=A[0];}}}}intmain(intargc,char*argv[]){inta[]={0,5,4,8,1,2,6,7,3};intlen=sizeof(a)/sizeof(a[0]);ShellSort(a,len-1);for(inti=0;i<len;i++){printf("%d\n",a[i]);}return0;}执行效果
