计算递归关系T(n)= n + T(n / 2)

时间:2015-11-03 18:05:20

标签: recurrence

enter image description here T(n)= n + T(n / 2)

= n + n / 2 + T(n / 4)

= n + n / 2 + n / 4 + T(n / 8)

= n + n / 2 + n / 4 + ... + n /(2 ^(k-1))+ T(n / 2 ^ k)

- >>>

我不知道怎么继续得到大哦公式。 请帮帮我

1 个答案:

答案 0 :(得分:1)

我假设某些初始条件如T(1) = 0,你没有告诉我们。

如果是,答案是O(log n)

考虑如何处理T(2)T(4)T(8)T(16)等。每个人只需要一个额外的步骤。

T(1) = T(2^0) calls the method recursively 0 times.
T(2) = T(2^1) calls the method recursively 1 time
T(4) = T(2^2) calls the method recursively 2 times
T(8) = T(2^3) calls the method recursively 3 times

换句话说,步数是功率。这意味着你必须采用对数来得到答案。