Definition: A function calls itself directly or indirectly
def func():
func()
Four elements:
received parameters
return value
Termination conditions
Recursive disassembly: how to recurse to the next level
Example: Fibonacci Sequence
0,1,1,2,3,5,8 ........
def fibe(n):
if (n < 2):
return n
m = fibe(n - 1) + fibe(n - 2)
return m
Time complexity: O(N power of 2)
Space complexity: O(N) stack first in last out