希尔排序思想
希尔排序对要排序的数字进行分组,在组内进行排序。排序完成需要进行多次分组,每次分组的个数是前一次分组个数的一半。
图示
以 [3 2 9 0 6 1 5 4 8 7] 该数组为例从小到大进行排序。
1. 首先将该组数字进行分组,首次分组的个数为数组长度除以2,即 10 / 2 = 5 组,下面相同颜色的为一组(即同一组内数字之间的下标的距离为组的个数)。
2. 将数字在各自组内进行排序,得到下面的结果
3.排序之后再次进行分组,分组的个数为前一次分组个数除以 2,即5 / 2