對數據交換這里有疑問
arrs[preIndex+gap]=arrs[preIndex] preIndex-=gap 這個地方,把preIndex的值賦值給了preIndex+gap后,preIndex+gap本身的值豈不是沒了 preIndex-=gap?,這里為何要做減法操作呢
arrs[preIndex+gap]=arrs[preIndex] preIndex-=gap 這個地方,把preIndex的值賦值給了preIndex+gap后,preIndex+gap本身的值豈不是沒了 preIndex-=gap?,這里為何要做減法操作呢
2020-07-13
舉報
2020-07-13
不會丟失的,current記錄了當前位置的值,while循環結束后這一段代碼會把當前值賦值過去。循環中不是交換,你可以理解為循環把所有比當前值大的都后移了一位,循環結束后這一段代碼會把空出來的位置賦值過去