前言
希尔排序算法就是一个叫希尔的人发明的直接插入排序算法的改进版。因为当需要查入的数刚好比较小,后移的次数就会增多,效率就会下降。所以希尔排序改进了这一缺点,用增量分组的方法。
思路
把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量减少,每组就包含越来越多有序记录,当增量减到1时,整个文件就变成1组,排序也就完成。
核心算法流程图
对有序序列进行插入时可以采用交换法或者移动法。
核心算法代码
交换法:
public static void shellSort(int[] arr) {
int temp = 0;
int count = 0;
// 根据前面的逐步分析,使用循环处理
for