你可以run一下這個程序,對任何n都適用

來源: 2009-07-30 20:47:50 [博客] [舊帖] [給我悄悄話] 本文已被閱讀:

判斷是否排好可以用反函數g(k),是O(1)。程序中已經實現了,不需要n為特殊的數。

謝謝你幫我解釋,這個程序就是這麽做的。很容易增加一些臨時變量數組驗證每個k最多隻被挪動一次。

“要檢查 x 的 loop 裏有沒有比 x 更小的位置”
這是不對的。隻要x沒排好,它就是loop裏最小的位置。換句話說,如果x不是loop裏最小位置(y是最小位置),那麽x已經在排y的時候排好了。