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("\n");
41 }
42 }
43
44 int main()
45 {
46 int list[10];
47 int n=9,m=0,i;
48 printf("input 10 numbers: \n");
49 for(int i=0;i<10;i++)
50 scanf("%d",&list[i]);
51 printf("\n");
52 ShellSort2(list,10);
53 // ShellSort(list,0,9);
54 printf("\n");
55 for(int i=0;i<10;i++)
56 printf("%5d",list[i]);
57 printf("\n");
58 }