1 #include"iostream" 2 #include"stdio.h" 3 using namespace std; 4 5 void ShellSort(int *data,int left,int right) 6 { 7 int len=right-left+1; 8 int d=len; 9 while(d<1) 10 { 11 d=(d+1)/2; 12 for(int i=left;i<right+1-d;i++) 13 { 14 if(data[i+d]<data[i]) 15 { 16 int tmp=data[i+d]; 17 data[i+d]=data[i]; 18 data[i]=tmp; 19 } 20 } 21 } 22 } 23 void ShellSort2(int *data,int len) 24 { 25 int d=len; 26 while(d>1) 27 { 28 d=(d+1)/2; 29 for(int i=0;i<len-d;i++) 30 { 31 if(data[i+d]<data[i]) 32 { 33 int tmp=data[i+d]; 34 data[i+d]=data[i]; 35 data[i]=tmp; 36 } 37 } 38 for(int i=0;i<10;i++) 39 printf("%5d",data[i]); 40 printf(" "); 41 } 42 } 43 44 int main() 45 { 46 int list[10]; 47 int n=9,m=0,i; 48 printf("input 10 numbers: "); 49 for(int i=0;i<10;i++) 50 scanf("%d",&list[i]); 51 printf(" "); 52 ShellSort2(list,10); 53 // ShellSort(list,0,9); 54 printf(" "); 55 for(int i=0;i<10;i++) 56 printf("%5d",list[i]); 57 printf(" "); 58 }