判斷是否排好可以用反函數g(k),是O(1)。程序中已經實現了,不需要n為特殊的數。 謝謝你幫我解釋,這個程序就是這麽做的。很容易增加一些臨時變量數組驗證每個k最多隻被挪動一次。 “要檢查 x 的 loop 裏有沒有比 x 更小的位置” 這是不對的。隻要x沒排好,它就是loop裏最小的位置。換句話說,如果x不是loop裏最小位置(y是最小位置),那麽x已經在排y的時候排好了。