希尔排序

希尔排序的产生

希尔排序基于插入排序,并添加一些新的特性,从而大大的提高插入排序的执行效率。

插入排序的缺陷,多次移动

假如一个很小的数据在靠右端的位置上,那么要将该数据排序到正确的位置上,则所有的中间数据都需要向右移动一位。

希尔排序的优点

希尔排序通过加大插入排序中元素之间的间隔,并对这些间隔的元素插入排序,从而使得数据可以大幅度的移动。当完成该间隔的排序后,希尔排序会减少数据的间隔在进行排序。依次进行下去。

间隔的计算

间隔h的初始值为1,通过h=3*h+1来循环计算,直到该间隔大于数组的大小时停止。最大间隔为不大于数组大小的最大值。

间隔的减少

可以通过公式h=(h-1)/3来计算。

希尔排序的代码实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容