time complexity рекурсия
Объясните, пожалуйста, почему
def f(N):
if(N <= 1):
return 1
else:
x = f(N-1)
y = f(N-2)
return x+y
имеет O(2^n)
def f(N):
if(N <= 0):
return 2
if(N <= 5):
return f(N-1) * f(N-1)
else:
return f(5)*f(4)
имеет O(1)
Источник: Stack Overflow на русском