大家好,我是贤弟!
一、什么是希尔排序?
希尔排序(Shell Sort)是插入排序的一种高效改进版本,也称作缩小增量排序,1962年由D.L.Shell首次提出。
希尔排序的基本思想是:先将待排序的元素分成若干个子序列,子序列内部采用直接插入排序算法进行排序;然后依次缩减步长,重复上述子序列划分和排序工作,直到最后步长缩减至1,逐个对所有元素进行插入排序,完成对整个序列的排序。
二、希尔排序的原理
希尔排序的原理是,通过一个增量序列h1< h2 < ...< hk的选取,将待排序的元素分成k个子序列,其中每个子序列的元素下标相隔h1,h2,...,hk。
然后对每个子序列进行插入排序,在排序之后,使用更小的增量序列重复上述过程。
不断缩小增量序列,直到增量为1,此时只需进行简单的插入排序即可完成对整个序列的排序。
三、代码示例
C语言实现希尔排序的代码如下:
输出结果:
领取专属 10元无门槛券
私享最新 技术干货