← capítulo

Caché LRU

Desaloja el elemento menos usado recientemente cuando se llena. Hash map + lista doblemente ligada = O(1) en todo.

Dos necesidades O(1), ninguna estructura sola

Observa la lista de recencia

put E (lleno) → desaloja B (atrás, el menos reciente). get A → mueve A al frente. El frente se llena con lo que usas; el fondo es lo que desalojas.

Por qué LRU: hit rate

Carga sesgada (Zipf), capacidad 50: LRU 71% vs FIFO/aleatoria 65%. La recencia predice la reutilización.

Lo "doblemente ligada" es lo que sostiene todo

Para llevar

Dos estructuras compartiendo nodos cumplen un requisito de dos partes — el patrón de composición. OrderedDict / functools.lru_cache SON esto por dentro. Siguiente: árboles k-d — búsqueda de vecinos más cercanos particionando el espacio.