当n = 2 2k且k≥0时,递归关系
T(n)=√(2)T(n / 2)+√n,T(1)= 1
计算结果为:
(A) √(n)(log n +1)
(B) √(n)(log n)
(C) √(n)日志√(n)
(D) n对数√(n)答案: (A)
说明:请注意,该问题询问的是确切的解决方案。主定理以渐近符号的形式提供结果。所以我们不能在这里应用大师定理。我们可以使用简单的扩展或递归树方法解决此递归问题。
T(n) = √(2) T(n/2) + √n
= √(2) [√(2) T(n/4) + √(n/2) ] + √n
= 2 T(n/4) + √2 √(n/2) +√n
= 2[ √2 T(n/8) + √(n/4) ]+√2 √(n/2)+√n
= √(2^3) T(n/8)+ 2 √(n/4) + √2 √(n/2) +√n
= √(2^3) T(n/8)+√n +√n +√n
= √(2^3) T(n/(2^3))+3√n
.............................................
= √(2^k) T(n/(2^k))+k√n
= √(2^logn) + logn √n
= √n + logn √n
= √n(logn +1)
替代解决方案:
这个问题可以很容易地通过替换方法的外观来完成:
T(1)= 1;给予。
现在在给定的递归关系中使用n = 2,得出2 *(1.414)(因为root的值大于2为1.414)
现在通过查看选项使用满足选项A的n = 2。
这个问题的测验