通过替换解决复发问题

时间:2016-03-03 01:06:07

标签: algorithm recursion tree substitution recurrence

T(n) = { 0                     If n = 0
       { T(square root n) + 1  If n > 0

我试图通过使用替换来解决这个问题

我猜:O(lg lg n)

使用归纳

T(n) =  c lg lg n
T(n) =< c (lg lg square root n) + 1

square root n = n^1/2 =< c(1/2 lg lg n) + 1

以来

我无法继续这部分来获得lg lg n,我看到许多使用权力的解决方案。还有其他方法吗?

任何人都可以绘制一个递归树来帮助我理解吗?

1
||
n^1/2
||
n^1/4
||
n^1/8

T(n) = 1 + .......

1 个答案:

答案 0 :(得分:0)

理解这一点的最简单方法是2的权力,正如许多其他答案所说,但是,为了继续你提到的步骤,假设T(n) = lg lg n(忽略常数,因为这是一个确切的答案)

然后我们有:

T(sqrt(n)) = lg lg (sqrt(n)) = lg (1/2 * lg (n))
= lg (2^(-1) * lg(n))
= -1 + lg lg (n)
= -1 + T(n)

如您所见,T(n) = T(sqrt(n)) + 1