请考虑以下重复发生:
以下哪一项是正确的?
(A)T(n)=
(登录)
(B)T(n)=
(登录)
(C)T(n)=
(sqrt(n))
(D)T(n)=
(n)
(A) A
(B) B
(C) C
(D) D答案: (B)
解释:
背景要求–使用替代方法进行递归求解。
答案– B
展开递归,
T(n)= 2T(n ^(1/2))+ 1
= 2 ^ 2T(n ^(1/4))+ 2
= 2 ^ 3T(n ^(1/8))+ 3
。
。 k步
。
= 2 ^ kT(n ^(1 / 2k))+ k…………。 (1)
使用基本案例
n ^(1 / 2k)= 2
双方日志
log2n = 2k
k = log2log2n
从(1),
T(n)= log2n + log2log2n
= Theta(log2n)
此处log2n:log(以2为底)n
有关的 :
http://geeksquiz.com/algorithms-analysis-of-algorithms-question-17-2/
该解决方案由Pranjul Ahuja贡献。
这个问题的测验