Рет қаралды 1,195
Telegram: t.me/dev_pushkin
Leetcode: leetcode.com/idfumg
GitHub: github.com/idfumg
Py: gist.github.com/idfumg/8109f4...
Go: gist.github.com/idfumg/529367...
Cpp: gist.github.com/idfumg/3a8a03...
LFU.
Сегодня разберем такую структуру данных, как LFU (Least Frequently Used). Она может быть немного менее популярна, чем LRU, но тоже имеет свои места для применения и иногда про нее спрашивают. Например, если у вас стоит задача закешировать in-memory какие-то трендовые данные, которые запрашиваются чаще всего. То есть LFU будет отдавать самые часто используемые данные и держать в себе столько таких данных, сколько вы зададите при инициализации. Данная реализация имеет превосходную time complexity и будет работать максимально быстро с небольшим ограничением, которое почти не влияет на гибкость его использования. Также, рассказал, как сделать time complexity немного хуже, но дать возможность максимальной гибкости. В целом, есть разные вариации данной структуры данных и ее можно тюнить под ваши нужды. Не самая сложная структура данных, которую не очень трудно реализовать самому. Пробуйте написать ее сначала сами, потом запускать мой код. Так вы лучше поймете. Если нашли бажки, пишите, поправим. Всем удачного просмотра! :)
#c++ #python #go #golang #LFU #programming #data_structures #algorithms #computerscience