5
A
回答
5
當所有元素相等時,構建堆佔用O(n)個步驟。因爲當一個比較O(1)後元素被添加到堆中時,我們看到它處於正確的位置。
刪除根目錄也是O(1),當我們交換尾部和根目錄時,heap屬性仍然滿足。
所有元素都被添加到O(n)中的堆中,並在O(n)中被刪除。所以,在這個的情況下,heapsort是O(n)。我想不出一個更好的情況,所以heapsorts最好的情況必須是O(n)。
'heapsorts best case is O(n)'意思是英文的意思是:存在大小爲n的數組,使得heapsort至多需要對k * n進行排序。這在理論上很好,但在實踐中,它並沒有多說好多快或多快。
相關問題
- 1. 每當我按時間戳排序時返回相同的行
- 2. 對具有相同時間戳的行進行排序
- 3. 在相同的運行時間運行兩個相同的DLL?
- 4. PHP usort reorders數組的排序值是相同的所有
- 5. 當在JVM5 vs JVM6中運行相同的程序時,HashMap中的項目順序有所不同
- 6. 與合併排序相比,修改的合併排序的運行時間?
- 7. 運行時間的排序代碼
- 8. 多次運行同一程序時,爲什麼執行時間有所不同?
- 9. 當運行UPDATE ... datetime = NOW();將所有行更新具有相同的日期/時間?
- 10. 當多個單元測試複製相同的文件,運行所有的單元測試失敗
- 11. java - 是否有可能在運行時檢查當前使用的堆空間?
- 12. 當列標題相同時合併所有行中的值
- 13. 從Aws的所有時間運行SimpleHttp
- 14. AS3 - 如何更改所有相同Movieclips運行時的內容?
- 15. 當通過WMI運行時,執行的行爲與本地運行相比有所不同
- 16. 元素的順序在IQueryable中有所不同,每當我用相同的條件查詢時
- 17. 在不同載體之間的相同時間運行R
- 18. 瞭解合併排序和快速排序的運行時間
- 19. 運行合併排序和快速排序的線性時間
- 20. Bubble排序和快速排序的運行時間比較
- 21. 當單元是父類時,jQuery停止點擊時具有相同類的所有元素
- 22. 同時運行所有單元測試的異常
- 23. 爲什麼這三個排序函數有不同的運行時間?
- 24. 合併排序算法的最佳運行時間和平均運行時間
- 25. 運行時間插入排序
- 26. C++快速排序運行時間
- 27. 計數排序運行時間
- 28. 小學排序運行時間比較
- 29. 基數排序運行時間
- 30. 插入排序bizzare運行時間
謝謝.. Ishtar – rakesh
這是不正確的!請參閱http://stackoverflow.com/questions/4589988/lower-bound-on-heapsort – Cheng
@Cheng,這個問題是關於**最好的情況下,你鏈接的問題是關於**最糟糕的情況。正如我指出的那樣,最好的情況並不是真正的相關。如果你有如何改進我的答案的建議,請讓我知道。 – Ishtar