Fibonacci recursion

I do not know the mathematics in this algorithm and can use some help.

Algorithm:

if n<2 then

  return n

else return fibonacci(n-1) + fibonacci(n-2)

Statement

n <2 represents O (1)
Time n> = 2 is O (1)
Return n is O (1) Time n> = 2 - Return fib (n-1) + fib (n-2) -

and the time n> = 2 is T (n-1) + T (n-2) + O (1)

Total: O (1) T (n-1) + T (n-2) + O (1)
T (n) = O (1) if n <2
T (n) = T (n-1) + T (n-2) + O (1) if n> = 2

+3
source share
3 answers

, , . , , .

, , , . , , , . , .

, :

F(n): if n<2 then return n else return F(n-1) + F(n-1)
+4

: fib(k) , C*2^k k < n, fib(n)

T(n) = T(n-1) + T(n-2) + K < C*2^(n-1) + *2^(n-2) + K
     = 0.75*C*2^n + K < C*2^n

C ( C > K/0.25, 2^n > 1). , T(n) < C*2^n, .. T(n) = O(2^n).

( T(n) - fib(n), K - , fib(n), [t214 > fib(b-1) [].)

+3

You need to solve the recurrence equation:

T(0) = 1
T(1) = 1
T(n) = T(n-1) + T(n-2), for all n > 1
0
source

Source: https://habr.com/ru/post/1734810/


All Articles