1 #include <iostream> 2 using namespace std; 3 const int N = 10; 4 5 void shell_sort(int a[],int d) 6 { 7 int tmp,i,j; 8 for(i=d;i<N;i++) 9 { 10 tmp=a[i]; 11 for(j=i-d;j>=0&&a[j]>tmp;j=j-d) 12 a[j+d]=a[j]; 13 a[j+d]=tmp; 14 } 15 } 16 17 void shellsort(int a[]) 18 { 19 int n=5,i; 20 21 for(i=n;i>=1;i=(i%3)+1) 22 { shell_sort(a,i); 23 cout << i << endl; 24 if (i == 1) 25 break; 26 } 27 //shell_sort(a,1); 28 } 29 30 int main() 31 { 32 int a[N] = {10,3,4,5,9,8,7,6,2,1}; 33 34 cout << "sort array before: /n"; 35 for(int i=0;i<N;i++) 36 cout << a[i] << " "; 37 cout << endl; 38 39 shellsort(a); 40 41 cout << "sort array after: /n"; 42 for(int i=0;i<N;i++) 43 cout << a[i] << " "; 44 cout << endl; 45