gpt4 book ai didi

algorithm - 插入二进制堆 : Number of exchanges in worst case

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:00:34 26 4
gpt4 key购买 nike

我正在阅读 Cormen 的“算法解锁”。在关于最短路径算法的第 6 章中,关于将数据插入二进制堆,我发现:“由于到根的路径最多有 floor(lg(n)) 条边,因此最多有 floor(lg(n))-1发生交换,因此 INSERT 需要 O(lg(n)) 时间。”现在,我知道在二叉堆中插入的结果复杂度如前所述,但关于最坏情况下的交换次数,应该不是 floor(lg(n)) 而不是 floor(lg(n))-1 .这本书的勘误表对此只字不提。所以我想知道我是否遗漏了什么。

感谢和问候,阿迪亚

最佳答案

您可以很容易地证明它是floor(lg(n))。考虑这个二进制堆:

    3
5 7

要插入值 1,首先要将它添加到堆的末尾:

    3
5 7
1

所以堆中有 4 个项目。需要两次交换才能将项目 1 移动到根目录。 floor(lg(4)) 等于 2。

关于algorithm - 插入二进制堆 : Number of exchanges in worst case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23580716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com