2021-11-20希尔排序(交换法)详解

假如共10个数据[交换法]

下面展示比较,数字表示下标

第一轮: [0, 5]  [1, 6]  [2, 7]  [3, 8]  [4, 9]

第二轮: [0, 2]  [1, 3]  [2, 4]  [0, 2]  [3, 5]  [1, 3]  [4, 6]  [2, 4]  [0, 2]  [5, 7]  [3, 5]  [1, 3]  [6, 8]  [4, 6]  [2, 4]  [0, 2]  [7, 9]  [5, 7]  [3, 5]  [1, 3] 

第三轮省略......

第一轮:

5组有序,间隔5为一组

第二轮:

每组前两个排序,前两个变成有序数组,第3个往有序数组里面加,前三个变成有序数组,第四个往有序数组里面加,前四个变成有序数组

很像插入排序

分两组:偶数组[0, 2, 4, 6, 8] 、奇数组[1, 3, 5, 7, 9]

这两组最后变成有序数组

第三轮:

直接对整体进行排序,只不过就排一次

因为两个数组的数据是交叉且有序的,只需要相邻比较交换即可

你可能感兴趣的:(2021-11-20希尔排序(交换法)详解)