时间复杂度T(n)= 2 * sqrt(n)* T(sqrt(n))+ c * lgn

时间:2014-02-28 17:25:38

标签: math analysis recurrence

我一直试图解决这个问题,但我找不到任何东西。

我的方法:

n=2^k然后S(k) = k * S(k/2) + c*k

现在,我不知道接下来该做什么。你有什么想法吗?

1 个答案:

答案 0 :(得分:3)

如果你尝试将其写下几个递归周期,你会得到这个:

2*n^(1/2) [2*n^(1/4) (2*n^(1/8) . T(n^(1/16) + c log n) + c log n] + c log n

如果你试图计算它,那就是(assymptoticaly):

2^log n * n^(1/2 + 1/4 + 1/8 + ... + 1/log n) + 2^(log n) * n(1/2 + 1/4 + 1/8 + ... + 1/log n) * c * log n

通过系列的完成并感谢2^log_2 n = n你获得(assymptoticaly):

n^2 + c * n^2 * log n

实际上是assymptoticaly:n^2(1 + c * log n) = n^2(c * log n) = n^2 * c * log n

结果:T(n) = O(c * n^2 * log n