希尔排序

希尔排序是直接插入排序算法的一种优化,其核心思想是分组进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。

稳定性:不稳定

实现:

   1: void
   2: shell_sort(int a[], int n)
   3: {
   4:     int i, j, gap;
   5:     
   6:     for (gap = n/2; gap > 0; gap /= 2) {
   7:         for (i = gap; i < n; ++i) {
   8:              for (j = i - gap; j >= 0 && a[j] > a[j+gap]; j-= gap) {
   9:                  swap(a[j], a[j + gap]);
  10:              }
  11:         }
  12:     }
  13: }
posted @ 2012-06-01 08:31  Newerth  阅读(187)  评论(0编辑  收藏  举报