数据结构--希尔排序(移动法)

数据结构--希尔排序(移动法)

上面是第二轮排序,第一轮看不出效果。

实际上这种方式的排序,理论上是分了2组来排序[3,1,0,9,9]和[5,6,8,4,2],实际上还是通过对一组数据进行遍历。

 当j=0的时候 就要和第3个元素进行比较,也就是3 和 1 进行比较,显然3 比1 大,然后就进行换位置。数据结构--希尔排序(移动法)

当j=1 的情况也是一样进行比较。

重点是j=2的时候,也就是3 和0 进行比较,符合条件,进行交换。

数据结构--希尔排序(移动法)

此时循环条件 j = j -2  >= 0 符合条件继续遍历 此时 j=0 ,也就是1 和 0进行比较

数据结构--希尔排序(移动法)

 由此arr[j] 所在的元素和 arr[j+2] 进行比较大小后,如果后面还有元素的话,就要继续和后面的元素进行比较,其中循环的条件

j -= 2 就是起到这样的作用的。