algorithm - 二进制堆高度

标签 algorithm heap asymptotic-complexity binary-heap

在二进制堆中 N节点和高度 h :

1 + 2^1 + 2^2 + … + 2^(h-1) + 1 <= N <= 1 + 2^1 + 2^2 + … + 2^(h-1) + 2^h 
2^h <= N < 2^(h+1)
h  <= log2(N)  <  h+1

最后一行: 第一个不等式意味着 hO(log N) . 但是为什么第二个不等式意味着hΩ(log N) ? 如果是“log2(N) < h”,我会理解,但我的问题是“1”中的“h+1”。

最佳答案

从第二个不等式,你有那个

h + 1 > log(N) ↠ h > log(N) - 1,

因此,

h = Ω(log(N) - 1)

但是,

log(N) - 1 = Θ(log(N)),

你可以使用传递规则

f(N) = Ω(g(N))g(N) = Θ(h(N)) 意味着 f(N ) = Ω(h(N))

关于algorithm - 二进制堆高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35555378/

相关文章:

graphics - 线段或边相交查找算法的时间复杂度

algorithm - 跳转到下一个最近的元素

算法优化 : loop to find pair of items in 3D space

java - Java 中的四元堆

algorithm - 堆与二叉搜索树 (BST)

c - 如何在 O(n) 时间内找到在 SORTED 数组中出现奇数次的数字?

algorithm - 嵌套循环的运行时间

java - 遇到语法错误怎么办?

algorithm - 多边形算法

data-structures - 堆被认为是一种抽象数据类型吗?