希尔排序(原始)

Posted on 2020-05-09 10:57  黑炽  阅读(165)  评论(0编辑  收藏  举报
 1 void shellSort(ElementType a[], int n) {//原始希尔排序
 2     int d, i, j;
 3     int temp;
 4 
 5     for (d = n / 2; d > 0; d /= 2) {//希尔增量序列
 6         for (i = d; i < n; i++) {
 7             temp = a[i];
 8             for (j = p; j >= d && a[j - d] > temp; i -= d)//插入排序,只是间隔1变成了d
 9                 a[i] = a[i - d];
10             a[i] = temp;
11         }
12     }
13 }