第1个回答 2016-08-05
递归时间复杂度:
T(n) = T(n-1) + T(n-2)
=T(n-2) + T(n-3) + T(n-2)
>2*T(n-2)
=2*(T(n-3) + T(n-4))
=2*(T(n-4) + T(n-5) + T(n-4))
>2*2*T(n-4)
...
>2^(n/2)
T(n) = T(n-1) + T(n-2)
<T(n-1) + T(n-1)
=2*T(n-1)
=2*(T(n-2) +T(n-3))
<2*(T(n-2) + T(n-2))
<2*2*T(n-2)
...
<2^n
递归时间复杂度 2^(n/2) < T(n) < 2^n,O(2^n)。
非递归时间复杂度:
T(n) = 1 + T(n-1)
= 1 + 1 + T(n-2)
=n
非递归时间复杂度 O(n)。本回答被网友采纳