The complexity of a naive recursive fibonacci is indeed 2?.
T(n) = T(n-1) + T(n-2) = T(n-2) + T(n-3) + T(n-3) + T(n-4) =
= T(n-3) + T(n-4) + T(n-4) + T(n-5) + T(n-4) + T(n-5) + T(n-5) + T(n-6) = ...
In each step you call T
twice, thus will provide eventual asymptotic barrier of:
T(n) = 2?2?...?2 = 2?
bonus: The best theoretical implementation to fibonacci is actually a close formula, using the golden ratio:
Fib(n) = (φ? – (–φ)??)/sqrt(5) [where φ is the golden ratio]
(However, it suffers from precision errors in real life due to floating point arithmetics, which are not exact)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…