通过重复替换计算递归关系的时间复杂度

时间:2019-04-07 03:08:44

标签: algorithm time-complexity

通过重复替换解决以下递归关系-

f(n)= 4f(n / 2)+ g(n)且g(n)∈θ(n)和f(1)∈θ(1)

1 个答案:

答案 0 :(得分:0)

就做吧! f(n) = 4 (4f(n/4) + g(n/2)) + g(n) = 4^2 f(n/2^2) + 4 g(n/2) + g(n) = 4^2(4f(n/2^3) + g(n/2^2)) + 4 g(n/2) + g(n) = 4^3 f(n/2^3) + 4^2 g(n/2^2) + 4 g(n/2) + g(n)。现在我们可以归纳一下:f(n) = sum_{i = 0}^{log(n)} 4^i g(n/2^i)。作为g(n) = Theta(n),用g(n)替换n。我们将拥有f(n) = sum_{i = 0}^{log(n)} 4^i * n/2^i = sum_{i = 0}^{log(n)} 2^i * n = n * sum_{i = 0}^{log(n)} 2^i = n * (1 + 2 + 2^2 + ... + 2^log(n)) = n * (2^(log(n)+1)-1) = n * (2n - 1) = Theta(n^2)

此外,您可以使用主定理来解决它。