1 #include<stdio.h> 2 3 void shellsort(int* data,int len) 4 { 5 int d=len; 6 int i; 7 while(d>1) 8 { 9 d=(d+1)/2; //增量序列表达方式 10 for(i=0;i<len-d;i++) 11 { 12 if(data[i+d]<data[i]) 13 { 14 int temp=data[i+d]; 15 data[i+d]=data[i]; 16 data[i]=temp; 17 } 18 } 19 } 20 } 21 22 int main() 23 { 24 int list[10]; 25 int i,j; 26 printf("请输入十个数字:\n"); 27 28 for(i=0;i<10;i++) 29 scanf("%d",&list[i]); 30 shellsort(list,10); 31 32 printf("希尔排序结果:\n"); 33 for(j=0;j<10;j++) 34 { 35 printf("%4d",list[j]); 36 } 37 printf("\n"); 38 39 return 0; 40 }