1 #include<iostream>
2 using namespace std;
3
4 int shell_sort(int n,int array[100]){//希尔排序法
5 register int dh,temp,i,j;
6 dh=n/2;
7 while(dh>=1){
8 for( i=dh;i<n;i++){
9 temp=array[i];
10 j=i-dh;
11 while(j>=0&&array[j]>temp){
12 array[j+dh]=array[j];
13 j-=dh;
14 }
15 array[j+dh]=temp;
16 }
17 dh/=2;
18 }
19 return 0;
20 }
21 int print(int n,int array[100]){
22 int i;
23 for(i=0;i<n;i++){
24 cout<<array[i]<<" ";
25 }
26 cout<<endl;
27 return 0;
28 }
29 int main()
30 {
31 int array[10]={5,7,8,2,3,5,4,3,2,1};
32 shell_sort(10,array);
33 print(10,array);
34 return 0;
35 }