希尔排序
希尔排序原理
希尔排序是一种特殊的插入排序,也被称作缩小增量排序,是为了提高直接插入排序算法的效率而产生的一种排序方法。
具体操作为:
- 记录按序列下标的增量分组,对每组分组使用直接插入排序算法。
- 缩小增量,扩大分组内元素数量,继续使用直接插入排序。
- 直到增量缩小到1时候,此时的分组内是目标序列所有元素,再次进行直接插入排序,排序完成。
图解希尔排序
一般情况下,我们默认增量gap为序列的长度的一半,即通过每次对增量除2来扩大分组内元素数量,具体操作如下:
定义gap(增量)为数组长度(size),那么第一次进行分组后如图所示,对4组分组分别使用直接插入排序。
缩小增量,下一次分组增量为2。f分组如下