【发布时间】:2013-05-29 09:39:12
【问题描述】:
Haskell 是否有可用的斐波那契堆/优先级队列? (或者甚至是渐近更好的?)我在this question 中找到了各种优先级队列实现的列表,但我找不到它们是否满足斐波那契堆的摊销运行时间:
- Find-minimum 是 O(1) 摊销时间。
- 操作插入、减少键和合并(联合)工作是 O(1) 分摊时间。
- 操作删除和删除最小是O(log n)分摊时间。
【问题讨论】:
-
可能不存在生产代码,因为对于合理大小的数据集,常数因子通常会使斐波那契堆比二项堆慢,尽管理论上具有渐近优势。
-
@OliCharlesworth 很有趣,您能否粗略估计一下斐波那契堆的优势是多少?
-
TBH,这有点超出我的范围;我只读过这些缺点(例如,参见CLRS)。不要引用我的话;)
标签: haskell priority-queue fibonacci-heap