使用替换来找出T(1)= 1的运行时间; T(n)= 4T(n / 3)+ n

时间:2015-02-18 00:21:35

标签: algorithm runtime

我已经到了这一点4 ^ logn + 3n [(4/3)^ logn -1]并且无法完成它。

日志是基础3.(不知道如何做下标和指数。)

谢谢。

2 个答案:

答案 0 :(得分:1)

Masters定理是解决此类问题的通用工具,但如果您想通过替换来获得特定解决方案,那么它如下:

T(n) = 4T(n/3) + n
T(n) = 4(4T(n/9) + n/3) + n = 4^2T(n/9) + (4/3)n + n
T(n) = 4^2(4T(n/27) + n/3^2) + (4/3)n + n = 4^3T(n/27) + (4/3)^2n + (4/3)n + n
T(n) = 4^kT(n/3^k) + (4/3)^(k-1)n + (4/3)^(k-2)n....

boundary condition 

n/3^k = 1, k = log3(n)
T(1) = 1
geometric series summation
T(n) = 4^log3(n) + 1((4/3)^log3(n) - 1)/(log3(n)-1)*n
using log rules
T(n) = n^(log3(4)) + n^(1+log3(4/3))/(log3(n)-1) - n/(log3(n)-1) 
T(n) = n^(log3(4)) + n^(1+log3(4)-log(3))/(log3(n)-1) - n/(log3(n)-1)
T(n) = n^(log3(4)) + n^(log3(4))/(log3(n)-1) - n/(log3(n)-1)
T(n) = O(n^log3(4))

答案 1 :(得分:0)

这是使用大师定理的理想场所。在您的情况下,我们希望以

的形式编写重复
  

T(n)= aT(n / b)+ O(n d )。

随着你的复发,你得到了

  • a = 4
  • b = 3
  • c = 1

由于log b a> d,主定理说这解决了O(n log 3 4 )。

希望这有帮助!