如何解决下面的递归关系?

时间:2016-04-06 03:05:18

标签: algorithm recurrence master theorem

这个问题出现在考试中,我不知道如何做到这一点,任何人都可以帮助我或提供一些暗示。我认为主人的方法在这里不适用? 请帮忙。

  

T(n)= T(n / 2)+θ(logn)

1 个答案:

答案 0 :(得分:2)

假设n强大2,比如说n = 2^k,为简单起见,我们说T(n) = T(n/2) + lg(n)其中lg是对数基数{{1} }和2

T(1) = lg(1) = 0

对于T(n) = lg(n) + lg(n/2) + lg(n/4) + ... + lg(1) = lg(2^k) + lg(2^{k-1}) + ... + lg(2^0) = k.lg(2) + (k-1)lg(2) + ... + 0.lg(2) = (k + (k-1) + ... + 0) lg(2) = k(k+1)/2 = lg(n)(lg(n)+1)/2 = Theta(lg(n)^2). 而不是n的强项,可以注意到2是一个增加的函数,因此T位于T(2^k) <= T(n) <= T(2^{k+1})。从上面的确切结果,我们得到

k = floor(lg(n))

等等

k(k+1)/2 <= T(n) <= (k+1)(k+2)/2