Wikipedia 有
這里,每條水平線代表待排序陣列的一個元素,每個箭頭代表一個交換操作,使得最大的元素被放置在箭頭所面對的方向上。我的問題是:我們可以顛倒“藍框”中“紅框”的順序嗎?即,假設最后一個藍色框按以下順序執行:

演算法是否仍會通過此更改對陣列進行排序?
uj5u.com熱心網友回復:
不,顛倒這些操作并不總是正確地對陣列進行排序。
例如,只看一個包含 4 個值的陣列,這樣我們就只有影像的這一部分:

現在我們考慮當我們在較大的藍色框中反轉操作時會發生什么。讓我們看這個例子:
[4,1,2,3]
第一階段(列)完成后,我們得到:
[1,4,2,3]
大藍色框的較小箭頭不會帶來任何變化(因為我們剛剛驗證了這些對并在需要的地方進行了交換),所以剩下的唯一動作由較大的箭頭表示,它給出了以下結果:
[1,3,2,4]
所以有一個反例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/530673.html
標籤:算法排序并行处理
下一篇:Javascript陣列差異
