希尔排序

每次以一定的间隔,将间隔这么大的元素分为一组,进行插入排序。

不断减小间隔。

在每一次排序的过程中,从前往后遍历每一次遍历过程中都把当前的这个元素当成要插入的元素,那么,疯狂向前交换,直到不能交换了(也就是到位置了,因为前面都是有序的)

时间复杂度跟选择的间隔大小很相关。

当前最优的最劣复杂度是O(Nlog2N)O(Nlog^2N),使用的间隔是2p3q2^p\cdot3^q

但最简单的但复杂度也比较优的一个间隔是hk+1=3hk+1h_{k+1}=3h_k+1,复杂度大约是O(N1.5)O(N^{1.5}),应该吧。


希尔排序
https://lhish.github.io/project/hide/希尔排序/
作者
lhy
发布于
2024年6月30日
许可协议