计算重复使用重复展开

时间:2017-10-13 15:49:01

标签: algorithm math divide-and-conquer master-theorem

我试图计算T(n)= 2 T(n / 2)+ n(log n)^ 2。 在我得到的步骤之后:

=2^kT(n/2^k)+ nlog2 (n/2^(k-1))+ nlog2 (n/2^(k-2))+…+ n(log (n/2))^2 + n (log2 n)^2

当n = 2 ^ k时,我得到了:

formula

但我不知道如何简化求和公式并得到Θ()表示法。 任何人都可以帮忙吗?非常感谢

2 个答案:

答案 0 :(得分:1)

你的总和对我来说并不合适。让我们重新推导出来:

enter image description here

... m次迭代后。让我们假设停止条件是n = 1(不失一般性):

enter image description here

...我们使用了两个对数规则。正如您所看到的,总和实际上是“自由指数”,而不是日志本身。使用以下整数幂和:

enter image description here

......我们得到:

enter image description here

要评估Θ符号,最高阶项是:

enter image description here

答案 1 :(得分:0)

如果您已阅读Master theorem,则会发现您提出的问题实际上是2nd Master Theorem的情况(请参阅上面的链接)。

所以,这里a=2b=2f(n) = 0[n^(c_crit)(log n)^k]其中k=2和c称为c_crit = log a to base b = {{1} }。

因此,根据大师定理,1 = T(n) = 0[(n^c_crit)(log k)^(k+1)]