希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。
但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。
希尔排序动画演示
数组由{7, 3, 1, 9, 5, 4, 2, 8, 6} 这9个无序元素组成。
第一次:gap = 9/2 = 4 动画:
第二次:gap = 4/2 = 2 动画:
第三次:gap = 2/2 = 1 动画:
代码如下:
public