0
A
回答
3
堆總是一個完全平衡的完全填充樹,它遵循堆不變 - 對於最小堆,節點的值始終大於或等於其每個子節點的值。
Heapsort從未排序的數據(O(n)時間)中創建一個堆,然後重複刪除堆的頂層元素(O(lg n)時間,因爲堆必須在每次移除時保留)並將其放入成陣列。值得注意的是,這隻有在保持堆不變的情況下才有效 - 除了其他亮點之外,還需要完美的平衡和有效的樹。
二叉樹不是堆的最高效表示形式; the Wikipedia article on binary heaps很好地解釋瞭如何使用數組來表示一個數組。 The article on Heapsort提到了一個有用的細節:如果使用數組表示,可以通過使用堆結束的空間來構建輸出數組,因爲堆始終平衡,並且刪除元素最終將釋放物理空間表示堆的最後一個單元格。
+0
教授指定使用的實現是就地。我只是不確定是否有必要在每次排序之後重新構建堆。 – Jason 2010-12-07 23:32:04
相關問題
- 1. HeapSort問題
- 2. 我的Heapsort有什麼問題?
- 3. MergeSort,QuickSort或HeapSort?
- 4. C++ heapsort混淆
- 5. HeapSort理論?
- 6. Matlab中的heapsort
- 7. heapSort issues java
- 8. Heapsort - 構建堆
- 9. Binary Heapsort代碼
- 10. 調試heapsort
- 11. heapsort工作99%
- 12. heapsort算法錯誤
- 13. 試圖執行HeapSort
- 14. 獲取heapsort打印升序
- 15. Heapsort降序不起作用
- 16. HeapSort - 交換前排序
- 17. 爲什麼heapsort不穩定?
- 18. Cormen's HeapSort算法的執行C
- 19. 使用std :: collections :: BinaryHeap就地heapsort
- 20. 在java中使用heapsort排序
- 21. 獲取Heapsort的前x個元素
- 22. Heapsort。如何模擬最壞情況?
- 23. 我如何在堆上實現heapSort?
- 24. 我不能做這個Heapsort動畫
- 25. C#heapSort,System.Timers;檢查算法的時間
- 26. Heapsort數量級比Bubblesort(C++)慢
- 27. heapsort和通過分組堆排序
- 28. 爲什麼我的heapsort不工作?
- 29. Cocos2d問題/問題
- 30. XSLT問題問題
谷歌首次訪問:http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/Sorting/heapSort.htm – 2010-12-07 18:06:14