Recursion

Return to notes index

Types of recursion

Three main rules of recursion

Implicatons of stack-based recursion for big-O complexity

def fib(n):
    match n:
        case 0:
            return 0
        case 1:
            return 1
        case _:
            return fib(n-1) + fib(n-2)
def fib(n):
    f1, f2 = 0, 1
    for i in range(n):
        f1, f2 = f2, f1 + f2
    return f1
def fib(n, f1=0, f2=1):
    match n:
        case 0:
            return f1
        case 1:
            return f2
        case _:
            return fib(n-1, f2, f1+f2)