希尔排序源代码如下:
#include <stdio.h>
//希尔排序
void shellSort(int a[],int l, int r){ //一次排序同一步长所组成的集合 如a[0],a[5],a[10]...
int i,j,h;
for(h=1;h<=(r-1)/9;h=3*h+1); //设置步长为1,4,13,40,121,...序列
for( ; h>0;h/=3)
for(i=h;i<=r;i++){
int j = i;int v = a[i];
while(j>=h && v<a[j-h]){
a[j] = a[j-h];j-=h;
}
a[j] = v;
}
}
main(){
int b[16] = {10,7,12,25,8,9,11,71,82,90,1,14,99,7,456,1};
int length = sizeof(b)/sizeof(b[0]);
shellSort(b,0,length-1);
int i;
for(i=0;i<length;i++)
printf("%d ",b[i]);
} #include <stdio.h>
//希尔排序
vo