我想了解如何推导出下面这个递归关系的复杂度。
T(n) = T(n-1) + T(n-2) + C
,已知T(1) = C
和T(2) = 2C;
对于像T(n) = 2T(n/2) + C
(给定T(1) = C
)这样的方程,通常我使用以下方法。
T(n) = 2T(n/2) + C
=> T(n) = 4T(n/4) + 3C
=> T(n) = 8T(n/8) + 7C
=> ...
=> T(n) = 2^k T (n/2^k) + (2^k - 1) c
现在当
n/2^k = 1 => K = log (n)
(以2为底) 时,K代表log(n)的值。T(n) = n T(1) + (n-1)C
= (2n -1) C
= O(n)
但是,我无法想出类似的方法来解决我的问题。如果我的方法有误,请纠正我。