我正在閱讀有關選擇排序的用例,這個訊息來源說:
(選擇排序用于...)寫入記憶體的成本與閃存一樣重要(與冒泡排序的 O(n2) 相比,寫入/交換的次數為 O(n))
在這個例子中,我們甚至可以看到O(n^2)交換:
[1, 2, 3, 4, 5]. 它將進行 4 次交換,然后是 3 次,然后是 2 次和 1。那是O(n^2),而不是O(n)交換。為什么他們說相反?
uj5u.com熱心網友回復:
選擇排序的時間復雜度為 O(n 2 ),但只有 O(n) 交換。
在每次迭代中i,您檢查所有剩余的專案(在索引中i及以后),找到正確的值來填充該索引,并在那里交換它。因此,您總共執行 O(n 2 )比較,但只有 O(n) 交換。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/407402.html
標籤:
