深入希尔排序世界

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入希尔排序世界相关的知识,希望对你有一定的参考价值。

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

引言

希尔排序(Shell Sort),是插入排序的一种又称“缩小增量排序”,同时它是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。

问题描述

希尔排序是直接插入排序算法的一种更高效的改进版本。它是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。

单从字面意思来理解,可能就有一点晦涩难懂,我们以一个例子来继续描述。

首先,发现它是一个10个数字组成的数组,初始增量为序号/2=5,于是之间的间隔为5。于是1号与6号比较,2号与7号比较……以此类推。

然后,二次增量为初始增量/2=2…1,于是二次增量为2,在初次结果的基础之上重新排序,1号与3、5、7、9号比较,2号与4、6、8、10号比较……以此类推。

以上是关于深入希尔排序世界的主要内容,如果未能解决你的问题,请参考以下文章

希尔排序

算法专栏--希尔排序

算法之美:希尔排序初识

直接插入排序和希尔排序

❤️数据结构入门❤️(4 - 8)- 希尔排序

希尔排序的介绍和希尔排序基本思想以及代码实现