algorithm - Fredman 和 Tarjan 论文中 Fibonacci 堆的 DecreaseKey 的原始设计

标签 algorithm data-structures heap fibonacci-heap

我现在按照原来的Paper实现斐波那契堆弗雷德曼和塔里安。如果我理解正确,根据论文,要执行节点 xDecreseKey 操作,我们只需将其从其父节点中删除即可。但是,如果减小后的键仍然大于其父级,那将是低效的(我认为)。此外,我看到许多设计仅在节点的键变得小于其父节点时才剪切节点,例如在 CLRS 中。

所以我对它的原始设计有点困惑。他们为什么不采用更有效的方法来执行 DecreaseKey。或者它可能使摊销分析更容易?任何回应表示赞赏。提前致谢。

最佳答案

我不能代表 Fredman 和 Tarjan(尽管我曾旁听过 Tarjan 的一节课),但大概他们关注的是 DecreaseKey 的最坏情况下的摊销复杂性,优化对其没有影响。

关于algorithm - Fredman 和 Tarjan 论文中 Fibonacci 堆的 DecreaseKey 的原始设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149654/

相关文章:

algorithm - SPOJ : DCOWS Why a Greedy algorithm does not work?

javascript - 创建长度为 n 的数组,除了索引符​​合特定条件的值之外,将所有值初始化为 0,时间复杂度为 O(1)?

java - ArrayList中合并对象的高效算法

安排人们参加应成对进行的事件的算法

string - 您实际上如何将后缀数组应用于任何类型的文本?

java - Java.util 包中是否有可索引的排序列表?

algorithm - 是否有任何好的技术可以使近乎排序的数据保持近乎排序?

java - 是否可以在事先不知道输入大小的情况下实现堆?

algorithm - 什么是近完全二叉树?

c++ - 确定具有可变元素的优先级队列的最佳 ADT (C++)