1 /*
2 Shellsort route using Shell's increments
3
4 */
5
6
7 #include<stdio.h>
8
9 void Shellsort(int A[], unsigned int N)
10 {
11 int i, j, Increment;
12 int Tmp;
13
14 for(Increment = N / 2; Increment > 0; Increment /= 2)
15 for(i = Increment; i < N; i++){
16 Tmp = A[i];
17 for(j = i; j >= Increment; j -= Increment)
18 if(Tmp < A[j - Increment])
19 A[j] = A[j - Increment];
20 else
21 break;
22 A[j] = Tmp;
23 }
24 }
25
26
27 int main(void)
28 {
29 int array[] = {81,94,11,96,12,35,17,95,28,58,41,75,15};
30 int i,num;
31 num = sizeof(array) / sizeof(int);
32 Shellsort(array, num);
33 for(i = 0; i < num; i++)
34 printf("array[%d] = %d ", i, array[i]);
35 return 0;
36 }
希尔排序
最新推荐文章于 2024-03-20 13:15:46 发布