希尔排序 shell

希尔排序又叫缩小增量排序,是建立在插入排序上的威力加强版。

主要是利用了插入排序对逆序数越少的数组的排序,花费的时间就越少,的特性来进行优化;

                                        ↑简单来说就是越整齐排序所花时间也就越少;

希尔排序中通过比较相距一定间隔的元素,并使这个间隔不断减小,知道间隔为1,进行工作;

这也是缩小增量排序名称的由来;

实现一般使用for循环嵌套,然后依次比较n和n+k的元素,其中k是间隔;

间隔k的初始值一般使用N/2,N为数组元素个数;

看似使用了几个for嵌套,实际上花费的时间却很少,希尔排序最坏的情况使用O(N3/2);

原文地址:https://www.cnblogs.com/mckc/p/9749847.html