Операция выполнена!
Закрыть
Хабы: Алгоритмы, Программирование

LRU-кэш это популярная структура данных, хранящая пары ключ-значение, но в отличие от обычной "мэпы" ограниченная по размеру - более старые (least-recently-used) записи пропадают при переполнении. Он популярен и на собеседованиях (видимо как альтернатива заезженным алгоритмам сортировок). Собственно под влиянием небольшого спора с интервьюером и родилась эта заметка :)

Огорчает, что обычно подразумевают конкретно "классическую" реализацию с мэпой и двухсвязным списком. В некоторых языках (Java) даже в стандартную либу входит такая комбинация (LinkedHashMap).

А на деле способов реализации можно найти или придумать много - в этом смысле задачка тем и хороша что простор для "пошевелить мозгами" очень большой. Здесь мы покажем как от "классического" способа прийти к двум более простым вариантам (без списка - "с таймстемпами" или "с поколениями"). Как в инженерной практике так и на собеседовании - чем проще, тем лучше. И мы проанализируем и проверим, проседает ли быстродействие (а может наоборот улучшается?)

так проседает или улучшается?
Читайте также
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro