如何递归求解T(n)= 5T(n / 2)+ n ^ 2,T(1)= 2

时间:2019-02-23 09:09:40

标签: algorithm recursion big-o

如何在不使用主定理的情况下满足T(n)= 5T(n / 2)+ n ^ 2,T(1)= 2的渐近上限。

这是我的步骤,但我不知道最后如何处理求和,因此无法找到此递归函数的big-O答案。

T(n) = 5T(n/2) + n^2
     = 5^2 T(n/2^2) + 5(n/2)^2 + n^2
     = 5^3 T(n/2^3) + 5^2(n/2^2)^2 + 5(n/2)^2 + n^2
     = ...
     = 5^i T(n/2^i) + 5^i(n/2^i)^2 + ...+ 5^2(n/2^2)^2 + 5(n/2)^2 + n^2
     = 5^i T(n/2^i) + n^2 Sum of k from 0 to i, (5/4)^k

如何处理求和?谢谢。

1 个答案:

答案 0 :(得分:2)

  

如何处理总和?

您在此处描述的总和是geometric progression [wiki]。形式之和:

 n
---
\     i
/    a
---
i=0

有一个已知的解决方案:

 n
---           n+1
\     i      a    - 1
/    a     = --------
---            a - 1
i=0

这是您的总和:

  

k从0到i的总和(5/4)^ k

等于:

4 * ((5/4)^(i+1) - 1)

我们知道i仅限于 log 2 n ,这足以解决方程式。