希尔排序是插入算法的一种改进,传统插入算法是2重循环,希尔算法有3重。
希尔排序算法采用自增序列对远距离非相邻的元素进行排序。
对于希尔算法需要设置一个自增量h。
最外层层循环运行的次数为:h
中间层循环的次数为:数组长度-h
最内层次数为:index/h次。index为数组序号。
当h的值越大,外层循环越多中间层的越少,里层也越少。
希尔排序的自增量最后一定会为1,这样整个数组为一个组,会进行一次类似冒泡的插入排序。
以下是希尔算法代码,自增量为h
main