希尔排序的思想
先将整个待排序的记录分割成为若干个子序列,再分别进行直接插入排序,待整个序列中的元素基本有序时,再对全体元素进行直接插入排序。
希尔排序的实现步骤
1)计算最大间隔数
2)根据最大间隔数不断划分子序列,并对子序列排序
3)缩小最大间隔数,重复2过程,直至间隔数为 1 时执行完最后一次循环排序结束
注:间隔数为 1 时,即是序列中元素基本有序,对全体元素进行直接插入排序
希尔排序实现代码及注释
关系希尔排序的理解
1)希尔排序的核心在最大间隔数(增量)的计算上,最大间隔数决定了希尔排序的效率
2)在最大间隔数为1之前,对子序列的排序会使序列相对有序,因为这会使小的元素向左移动,而大的元素向后移动,使其相对有序
3)最大间隔数为1时,即对整个序列进行一次插入排序,使序列最终排序完成