希尔排序 Shell Sort

  Shell排序又叫缩小增量排序(diminishing increment sort). 

  Shell排序是一种不稳定的排序算法,其时间复杂度受增量序列的影响非常大,最坏的情况是o(n^2)。Shell排序常用的增量序

列(H1必须为1)有:

    Shell最初建议步长选择为n/2,并且对步长取半直到步长达到1
    Knuth序列Hn = 3 * Hn-1 + 1
    Hibbard序列1, 3, ..., 2^k - 1

  Shell排序的一个重要性质是, 一个Hk-排序的文件(以后将是Hk-1-排序)保持它的Hk-排序性. 事实上,假如情况不是这样的话, 那

么该算法也就没有什么意义了. 因为前面各趟排序的结果就会被后面各趟排序给打乱.

  一趟Hk-排序的作用就是对Hk个独立的子数组执行一次插入排序.

  Shell排序的算法实现我放在这里

Reference:

Shell排序: http://blog.csdn.net/gulianchao/article/details/8581210

原文地址:https://www.cnblogs.com/lxw0109/p/shell-sort.html