【数据结构与算法】二项队列与二叉堆的比较
生活随笔
收集整理的這篇文章主要介紹了
【数据结构与算法】二项队列与二叉堆的比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
導語
二叉堆確實是入門級的重要數據結構了,而二項隊列也是慢慢要去掌握的一種支持高效合并的優先隊列實現。本文稍作比較,望拋磚引玉。
列個表格比較基本操作性能
| 二項隊列 | O(1) | O(logN) | O(logN) |
| 二叉堆: | O(1) | O(logN) | O(N) |
不難看出,二項隊列merge操作優勢明顯。
二叉堆插入O(1)的解釋如下
說明:二叉堆插入也是 O(1) 這點,我其實原本不太敢寫,因為網搜確實都寫是O(logN),但大家這么想就能理解了(因為我們說的是平均情況):
二叉堆建堆的時間復雜度是O(N),除以逐一插入的N個元素,就平均是O(1)。
準確地說,O(logN)其實是最壞情況。
Merge操作的性能比較
對于二項隊列而言,它可以彌補二叉堆的在合并操作上的“低效”。
總結
以上是生活随笔為你收集整理的【数据结构与算法】二项队列与二叉堆的比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【离散数学】集合的包含排斥原理
- 下一篇: 【Git】PyCharm项目关联Git的