Complejidad Algorítmica: Comparación y Medición de Eficiencia

Clase 2 de 16Curso de Complejidad Algorítmica con Python

Resumen

A continuación te dejo el código con una corrección en el returnde la función recursiva:

import time

def factorial(n):
    respuesta = 1

    while n > 1:
        respuesta *= n
        n -= 1

    return respuesta


def factorial_r(n):
    if n == 1:
        return 1

    return n * factorial_r(n - 1)


if __name__ == '__main__':
    n = 200000

    comienzo = time.time()
    factorial(n)
    final = time.time()
    print(final - comienzo)

    comienzo = time.time()
    factorial_r(n)
    final = time.time()
    print(final - comienzo)