当 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 log √(n)答案:(一)
说明:请注意,该问题询问的是精确解。主定理以渐近符号的形式提供结果。所以我们不能在这里应用大师定理。我们可以使用简单的扩展或递归树方法来解决这个递归问题。
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) (因为根超过 2 的值为 1.414)
现在通过查看选项使用满足选项 A 的 n=2。
这个问题的测验