Phi*_*hil 32 java heap data-structures fibonacci-heap
我正在研究不同类型的堆数据结构.
Fibonacci堆似乎具有更好的最坏情况复杂度(1)插入,(2)删除和(2)找到最小元素.
我发现在Java中有一个类PriorityQueue是平衡的二进制堆.但为什么他们不使用Fibonacci堆?
另外,是否有斐波那契堆的实现java.util?
谢谢!
tem*_*def 47
不,标准Java集合API不包含Fibonacci堆的实现.我不确定为什么会这样,但我相信这是因为虽然斐波那契堆在分摊意义上是渐近的,但它们在实践中有很大的常数因素.集合框架也没有二进制堆,这将是另一个要包含的好堆.
作为一个完全无耻的自我插件,我在我的个人网站上用Java实现了Fibonacci堆.我不确定它会有多大用处,但是如果你很想知道它是如何工作的,我认为它可能是一个很好的起点.
希望这可以帮助!