DEV//UNIT
← АлгоритмыReal-world Development

LFU-кэш

Вытесняет ключи с наименьшим числом обращений.

время O(1) amortizedпамять O(capacity)уровень: начальный
Что происходит сейчас0/0
Нажмите Play, чтобы запустить сценарий
TypeScript — активная строка подсвечена шагом
1class LFUCache {
2 private freq = new Map<string, number>()
3 private capacity: number
4
5 constructor(capacity: number) { this.capacity = capacity }
6
7 touch(key: string): number {
8 const f = (this.freq.get(key) ?? 0) + 1
9 this.freq.set(key, f)
10 if (this.freq.size > this.capacity) {
11 let least: string | null = null
12 for (const [k, v] of this.freq) {
13 if (least === null || v < (this.freq.get(least) ?? 0)) least = k
14 }
15 this.freq.delete(least!)
16 }
17 return f
18 }
19}

Проблема

Вытесняет ключи с наименьшим числом обращений.

Что вы видите

У каждого ключа счётчик; лимит выталкивает минимальный.

Как это работает

Честнее LRU к «горячим» данным, но слеп ко времени: вчерашний хит не устареет без aging. Подбирается под паттерн доступа.

Пошаговый разбор

  1. 01

    Счётчик

    Каждое обращение +1.

  2. 02

    Вытеснение

    Минимальная частота уходит.

  3. 03

    Слепота

    Старые хиты не стареют сам собой.

Complexity и ограничения

time
O(1) amortized
space
O(capacity)

См. complexity в шапке страницы.

Edge cases

  • Пустой вход

    Корректно завершается без лишних шагов.

  • Вырожденный случай

    Минимум работы — сразу ответ.

Где встречается в реальности

Продукт

Классический приём в реальных системах.

Собеседования

Стандартный вопрос на понимание структуры.

Связанные алгоритмы

Shorts

«Кэш по частоте: кто реже — тому выйти»

Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.

Shorts 9:16

Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.

Кэш по частоте: кто реже — тому выйти
Нажмите Play
Бит 1/6 · 0–2 с
Hook
script-setup.ru/algorithms/lfu-cache