160得票5回答
有人真正高效地实现了斐波那契堆吗?

你们当中有没有人实现过斐波那契堆?我几年前曾经实现过,但是它比使用基于数组的二叉堆慢了几个数量级。 当时,我认为这是一个宝贵的教训,说明研究并不总是像它声称的那么好。然而,很多研究论文声称它们的算法运行时间都是基于使用斐波那契堆的。 你是否曾经成功实现过一个高效的斐波那契堆?或者是你处理的...

66得票1回答
斐波那契堆数据结构的直觉是什么?

我已经阅读了Fibonacci堆的维基百科文章并阅读了CLRS对数据结构的描述,但它们很少提供有关为什么这种数据结构有效的直觉。 Fibonacci堆为什么被设计成这样? 它们是如何工作的? 谢谢!

39得票3回答
是否有标准的Java实现Fibonacci堆?

我正在研究不同种类的堆数据结构。 斐波那契堆似乎具有更好的最坏时间复杂度,可用于 (1) 插入、(2) 删除和 (3) 查找最小元素的操作。 我在 Java 中发现了一个名为 PriorityQueue 的类,它是平衡二叉堆。但为什么他们没有使用斐波那契堆呢? 此外,在 java.uti...

37得票4回答
二叉堆和斐波那契堆的实际应用领域

斐波那契堆和二叉堆有哪些实际的应用?如果你能分享一些你使用它们解决问题的实例就太好了。 编辑:新增了二叉堆。很好奇。

29得票2回答
斐波那契堆或布罗达尔队列在实践中有被使用吗?

"Fibonacci堆在实践中有用吗?我在SO上查找了相关问题的答案(见下文),但没有真正回答这个问题。" 有一些很好的Fibonacci堆实现,包括在标准库中,比如Boost C ++。 这些库包含Fibonacci堆表明它们必须在某个地方有用。 我们知道,在实践中,Fibonacci堆...

22得票3回答
如何使用斐波那契堆实现Prim算法?

我知道 普利姆算法 以及它的实现,但是我跳过了一个部分,现在我想问一下。有人写道,使用 斐波那契堆 实现的普利姆算法复杂度为O(E + V log(V)),我的问题是: 简要介绍什么是斐波那契堆? 它是如何实现的? 如何使用斐波那契堆实现普利姆算法?

19得票2回答
为什么Fibonacci堆被称为Fibonacci堆?

斐波那契堆数据结构的名称中包含“斐波那契”一词,但数据结构中似乎没有使用斐波那契数。根据维基百科文章: 斐波那契堆的名称来自斐波那契数,在运行时间分析中使用。 这些斐波那契数是如何在斐波那契堆中出现的?

13得票1回答
为什么斐波那契堆需要级联剪切?

我正在学习《算法导论》中的f堆,并且“减小关键字(decrease-key)”操作确实让我困惑-为什么需要“级联砍枝”? 如果去掉此操作: make-heap(),insert(),minimum()和union()的成本显然保持不变 extract-min()仍然是O(D(n)),因为...

11得票1回答
有没有基于Fibonacci堆的Haskell优先队列?

是否有可用于Haskell的Fibonacci堆/优先队列?(或者甚至是渐近更好的一种?)我在这个问题中找到了各种不同的优先队列实现列表,但我无法确定它们中的任何一个是否满足Fibonacci堆的摊销运行时间要求: 查找最小值摊销时间为O(1)。 插入、减少键和合并(联合)操作的摊销时间为...

10得票4回答
Fibonacci堆的STL实现?

STL中的斐波那契堆在哪里? 如果STL没有实现斐波那契堆,使用现有算法和STL容器实现它的最佳实践是什么?