在包含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
在最后一行:
第一个不等式意味着h
是O(log N)
。
但是,为什么第二个第二个不等式意味着h
是Ω(log N)
?
如果是“log2(N) < h
”,我会理解,但问题在于“1
”中的“h+1
”。
答案 0 :(得分:2)
从第二个不平等,你有那个
h + 1&gt; log(N)↠h&gt; log(N) - 1 ,
因此,
h =Ω(log(N) - 1)。
然而,
log(N) - 1 =Θ(log(N)),
您可以使用
的传递规则f(N)=Ω(g(N))和 g(N)=Θ(h(N))意味着 f(N )=Ω(h(N))。