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 + .......
答案 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