gpt4 book ai didi

algorithm - 在 heapify 上绑定(bind)更紧

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:40 25 4
gpt4 key购买 nike

我想使用 siftdown 方法计算 heapify 上更严格的界限,所以我按如下方式进行:

在每个级别i,在最坏的情况下,该级别上的每个键都可以转到叶级别h(其中h是树的高度)。
由于第 i 层有 2i 个节点,所以完成的总工作量是

0≤i≤h (h - i ) * 2i

但是我无法继续下去。我知道它必须来 O(n) 但我无法达到它。请帮我解决这个问题。

最佳答案

S = ∑0≤i≤h (h - i ) * 2i

S = h + 2(h - 1) + 4(h - 2) + ... + 2h - 1 ... (1)

两边乘以2,

2S = 2h + 4(h - 1) + 8(h - 2) + ... + 2h ... (2)

从 (2) 中减去 (1),

S = h -2h + 2 + 4 + 8 + …. + 2小时

= -h – 1 + (1 + 2 + 4 + 8 +… + 2h )

= (2h + 1 - 1) – (h + 1)

[注:1 + 2 + 4 + 8 + ... + 2h = (2h + 1 - 1)

由于一棵高度为 h 的完全二叉树有 2h 到 2h + 1 个节点,所以上面的总和是 O(n),其中 n 是堆中的节点数。

关于algorithm - 在 heapify 上绑定(bind)更紧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6888781/

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