找出算法的运行成本

时间:2015-03-06 13:54:25

标签: algorithm master-theorem

我无法解决以下重现

T(n) = 3T(n/5) + lg^2 n

我的工作: 应用主定理

 a=3 b=5

 n^log5^3n= n^log^0.65

这导致n^0=1这与l og^2n

无法比较

我也试过了递归树,但它太复杂了。请帮忙。

1 个答案:

答案 0 :(得分:2)

T(n)= a * T(n / b)+ f(n)
在这里,

  

a = 3
    b = 5
    f(n)=(lg(n))^ 2

现在,根据师父定理的第一个案例,

  

如果f(n)= O(n ^ logb(a-e)),对于某些常数e> 0,则T(n)=Θ(n ^ logb(a))。

让我们采取 e = 3-sqrt(5)
因此,n ^ logb(a-e)= n ^ log5(3-(3-sqrt(5)))= n ^ log5(sqrt(5))= n ^ 0.5 = sqrt(n)。

因此,我们现在必须比较(lg(n))^ 2 sqrt(n)
如果我们绘制graphs of these two functions,我们可以清楚地观察到(lg(n))^ 2 = O(sqrt(n))

由于对于b = 5,f(n)= O(n ^ logb(a-e)),a = 3且e = 3-sqrt(5),
T(n)=Θ(n ^ logb(a))

=> T(n)=Θ(n ^ 0.68)