解决涉及Theta表示法的时间复杂性的重现

时间:2019-01-28 00:01:27

标签: algorithm recursion big-o master-theorem

docker container start …

如何解决这种复发?我不能在这里使用Master定理。

1 个答案:

答案 0 :(得分:1)

无需使用Master定理,只需简单地继续扩展递归关系,直到您看到一个模式即可。

T(n) = 4T(n/2) + Θ(n^2 /log(n))
= 4*(4t(n/4) + theta((n/2)^2 / log(n/2))) + theta(n^2/log(n)) 
= 4^2 * (t(n/4) + theta((n/2)^2 / log(n/2)) / 4) + theta(n^2/log(n)) 
theta((n/2)^2 / log(n/2)) / 4 can be simplified to theta(n^2/log(n))
= 4^2 * (t(n/4)) + 2theta(n^2/log(n)) 
= 4^2 * (4t(n/8) + theta((n/4)^2 / log(n/4))) + 2theta(n^2/log(n)) 
= 4^3 * (t(n/8) + theta((n/4)^2 / log(n/4)) / 4) + 2theta(n^2/log(n)) 
theta((n/4)^2 / log(n/4)) / 4 can be simplified to theta(n^2/log(n))
= 4^3 * (t(n/8)) + 3theta(n^2/log(n)) 

所以我们可以进一步简化为

4^k * (t(n/k)) + k*theta(n^2/log(n)) 

这将一直持续到k = n,并假设T(1)= 1,我们得到

4^n + n*theta(n^2/log(n))

由于4 ^ n大于n * theta(n ^ 2 / log(n)),答案为 O(4 ^ n)