是否有波那契堆的标准 Java 实现?
2022-09-01 04:30:48
我正在研究不同类型的堆数据结构。
斐波那契堆似乎具有更好的最坏情况复杂性,用于(1)插入,(2)删除和(2)查找最小元素。
我发现在Java中有一个类是一个平衡的二进制堆。但是为什么他们没有使用斐波那契堆呢?PriorityQueue
另外,在 中是否有斐波那契堆的实现?java.util
谢谢!
我正在研究不同类型的堆数据结构。
斐波那契堆似乎具有更好的最坏情况复杂性,用于(1)插入,(2)删除和(2)查找最小元素。
我发现在Java中有一个类是一个平衡的二进制堆。但是为什么他们没有使用斐波那契堆呢?PriorityQueue
另外,在 中是否有斐波那契堆的实现?java.util
谢谢!
不可以,标准 Java 集合 API 不包含斐波那契堆的实现。我不确定为什么会这样,但我相信这是因为虽然斐波那契堆在摊销意义上是渐近的,但它们在实践中具有巨大的恒定因素。集合框架也没有二项式堆,这将是另一个要包含的好堆。
作为一个完全无耻的自我插入,我在我的个人网站上有一个Java的斐波那契堆的实现。我不确定它有多大用处,但如果你好奇它是如何工作的,我认为这可能是一个很好的起点。
希望这有帮助!