Max-Heapify中最糟糕的情况 - 为什么你得到2n / 3?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Max-Heapify中最糟糕的情况 - 为什么你得到2n / 3?相关的知识,希望对你有一定的参考价值。
我已经弄清楚如何从以下问题得到2n / 3:
Worst case in Max-Heapify - How do you get 2n/3?
“在CLRS,第三版,第155页,给出了MAX-HEAPIFY:
'孩子的子树每个都有2n / 3的大小 - 最坏的情况发生在树的底层正好是半满的时候。'“
但是,我想知道,当树的底层正好是半满时,我们得到:
T(n)<= T(2n / 3)+ theta(1)
然后在其子树上的下一个递归调用中,该子树的底层全部已满(因为我们事先已经假定这一侧尽可能满,而另一侧为空以获得上述重复)。因此,下次通话的重复将是:
T(n)<= T(n / 2)+ theta(1)
并且之后每次递归调用都是一样的。
复发实际上发生了变化,我们怎么还能使用主定理?
但后来我发现因为a = 1,而f(n)= n ^ 0,那么无论b是什么,最坏的情况下运行时间总是O(lgn),那么我们为什么还要弄清楚b是什么?
谢谢
答案
第一次复杂性是O(log_{1.5} n)
,但第二次是O(log_2(n))
。因此,最糟糕的情况是最糟糕的!
以上是关于Max-Heapify中最糟糕的情况 - 为什么你得到2n / 3?的主要内容,如果未能解决你的问题,请参考以下文章