La memoización es una técnica de optimización que almacena los resultados de llamadas a funciones costosas y devuelve el resultado cacheado cuando se repiten las mismas entradas.
Sin memoización (Fibonacci):
fib(5) llama a fib(4) + fib(3)
fib(4) llama a fib(3) + fib(2) — ¡fib(3) se calcula OTRA VEZ!
Exponencial: O(2^n) tiempo
Con memoización:
Cada valor se calcula UNA SOLA VEZ y se cachea
Llamadas posteriores con la misma entrada retornan al instante
Lineal: O(n) tiempo, O(n) espacio
Idea clave: intercambiar espacio por tiempo
- Almacenar resultados en un diccionario/arreglo
- Antes de calcular, verificar si el resultado ya existe
- Aceleración drástica para subproblemas superpuestos
Algoritmos relacionados
Preguntas frecuentes
- ¿Qué es Memoización?
- La memoización es una técnica de optimización que almacena los resultados de llamadas a funciones costosas y devuelve el resultado cacheado cuando se repiten las mismas entradas.
- ¿Cuál es la complejidad de Memoización?
- Memoización se explica con visualización paso a paso, incluyendo su complejidad temporal y espacial cuando aplica.
- ¿Para quién es este visualizador de Memoización?
- La visualización de Memoización está pensada para nivel intermedio, dentro de la categoría Conceptos. Ideal para estudiantes, entrevistas técnicas y repaso práctico.
- ¿Qué algoritmos relacionados hay con Memoización?
- En la misma categoría (Conceptos) puedes explorar: Big O Notation, Recursion, Two Pointers. Todos tienen visualización interactiva.