如何通过迭代方法求解T(n)= T(n / 2)+ 2 ^ n的递归复杂度?

时间:2013-11-08 06:57:58

标签: algorithm asymptotic-complexity

我正试图找到上限和下限,可能是O(2 ^ n)

对于n <= 4 ,T(n)= 1

我知道一般的器官是:

T(n)= T(n / 2 ^(i + 1))+从i = 0到k的总和为2 ^(n / 2 ^ i)


从这里我不知道如何继续..

1 个答案:

答案 0 :(得分:3)

您的符号存在一些问题。一般机关应该是:

T(n) = T(n/2^(i+1)) + sum from k=0 to i of 2^(n/2^k)

完成此步骤后,我们允许i = log(2, n) - 1,以便T(n/2^(i+1)) = T(1)

因此,T(n) = T(1) + sum from k = 0 to (log(2, n) - 1) of 2^(n/2^k)

请注意,sum from k = 0 to (log(2, n) - 1) of 2^(n/2^k)2^n + 2^(n/2) + 2^(n/4) + ...,小于2^n + 2^(n-1) + 2^(n-2) + ...。但是,后一种东西是2^(n+1) - 1。所以以前的东西是2^n2^(n+1)之间的东西。因此,总和O(2^n)

然后T(n) = O(2^n)