AD

¿Ya dominas lo básico? Un curso estructurado de C es la vía rápida para dar el salto.

Ver cursos de C en Udemy

Enlace de afiliado. No te cuesta nada extra.

🔧Lecciones de C
Lección 38 / 68

Acelerar cálculos con memoización (caché)

En esta lección evitarás repetir un cálculo guardando los resultados ya obtenidos.

Se usa un array como caché, inicializado a un valor que signifique «aún no calculado». Antes de calcular se mira la caché; después de calcular, se guarda.

El código de ejemplo calcula términos de una sucesión avisando cuándo calcula y cuándo recupera de la caché.

El efecto es espectacular en la recursión: el Fibonacci recursivo sin caché repite los mismos subcálculos y tarda un tiempo exponencial; con caché pasa a ser lineal. Para n=40 la diferencia es de segundos a instantáneo.

Lo que hay que pensar es el valor centinela: si eliges 0 para «no calculado» pero 0 es un resultado válido, la caché nunca acierta en ese caso. Hay que usar un valor imposible (como -1) o un array aparte de banderas.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar C directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)