优先队列的概率数据结构
1. 引言
优先队列的实现是数据结构中的经典问题,在网络优化和任务调度等算法中广泛应用。确定性数据结构在摊销和最坏情况下有最优性能,但部分结构复杂,实际应用价值不高。概率数据结构在简单性和实际运行时间的常数因子方面表现更好,不过目前尚未有能在可比时间内实现斐波那契堆所有操作的概率数据结构。
下面是几种常见数据结构实现优先队列操作的性能对比:
| 数据结构 | 删除 | 删除最小值 | 插入 | 减小键值 | 合并 |
| — | — | — | — | — | — |
| 二项堆 | O(log n) (最坏情况) | O(log n) (最坏情况) | O(log n) (最坏情况) | O(log n) (最坏情况) | O(log n) (最坏情况) |
| 斐波那契堆 | O(log n) (摊销) | O(log n) (摊销) | O(1) (摊销) | O(1) (摊销) | O(1) (摊销) |
| 快速可合并堆 | O(log n) (最坏情况) | O(log n) (最坏情况) | O(1) (最坏情况) | O(log n) (最坏情况) | O(1) (最坏情况) |
| Brodal | O(log n) (最坏情况) | O(log n) (最坏情况) | O(1) (最坏情况) | O(1) (最坏情况) | O(1) (最坏情况) |
| SBSH | O(log n) (高概率) | O(log n) (高概率) | O(1) (期望) | O(log n) (高概率) | O(log n) (高概率) |
| BSH1 | O(log n) (高概率) |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



