我现在正在根据Fredman和Tarjan的原始Paper实现Fibonacci堆。根据本文,如果我正确理解它,以执行节点 x 的 DecreseKey 操作,我们只需将其从其父节点中删除即可。但是,如果减小后的密钥仍大于其父密钥,则效率会很低(我认为)。另外,我看到许多设计仅在节点的密钥变得比其父节点小时才切割节点,就像在CLRS中一样。
所以我对它的原始设计有些困惑。他们为什么不采用更有效的方法来执行 DecreaseKey 。还是使摊销分析更容易?任何答复表示赞赏。预先感谢。
答案 0 :(得分:0)
我不能代表Fredman和Tarjan(尽管我曾经审核过Tarjan的一个类),但是大概他们专注于DecreaseKey的最坏情况摊销的复杂性,这种优化没有效果。