Ambas versiones de este algoritmo calculan , pero ¿tienen la misma complejidad?
Versión iterativa:
PARA i = 1 HASTA n HACER
result ← result × i
return result
Versión recursiva:
SI n = 0
return 1
SI NO
return factorial(n-1) × n
Ambas hacen exactamente multiplicaciones. Pero la versión recursiva tiene overhead de stack: cada llamada guarda el estado en memoria.
¿Cuál es la complejidad temporal y espacial de cada una?