数据结构-希尔排序

108 阅读1分钟

在使用快速排序的时候,如果数据排序杂乱,那排序消耗的时间将会变得很高,可以先使用希尔排序,将数据总体趋于一个排序状态再使用快速排序,将能极大的减小开销。

算法思路:

1、线性表L,增量di

增量 di = n / p ; n 为表数据长度, p 可以根据自己情况取值
p范围[1,n],随p增大趟数低,效果越低;反之则趟数多,效果好。

2、通过不断改变缩小增量di,使不同位置的数据排序,从而使总体趋于排序

image.png

由上面图片可知,通过两趟排序后,表数据已经趋于排序(这里数据取得并不是很好,可以使用多一点的数据,效果能更明显),最后再使用快速排序进行排序,这就是希尔排序的一个思路。