Страницы

Поиск по вопросам

четверг, 11 октября 2018 г.

Как называется контейнер хранящий N лучших элементов?

У меня есть контейнер фиксированного размера содержащий упорядоченные элементы. В конструкторе я передаю в него его максимальный размер и функцию сравнения. При добавлении элемента, контейнер использует функцию сравнения и добавляет новый элемент к другим элементам так, чтобы сохранить порядок от лучшего к худшему и, если достигнут предел, выбрасывает худший элемент.
Есть ли у такого контейнера каноническое название (английский и русский термины) ?


Ответ

На мой взгляд, канонического названия у такой структуры нет. В зависимости от задачи она может иметь разные названия. Как примеры:
LRU Cache: в данной структуре данные упорядочиваются по частоте обращений к ним, наименее используемые удаляются при достижении заданного размера кэша. MRU Cache: такой же принцип, но в отличии от LRU вытесняется последний использованный элемент. EvictingQueue: структура данных из Guava, первый элемент очереди удаляется, если очередь заполнена. Также есть MinMaxPriorityQueue CircularFifoQueue: структура данных из Apache Commons, заменяет старейший элемент, если очередь заполнена.
Думаю, в зависимости от семантики структуры данных и принципа ее реализации (на основе очереди, хэш-таблицы или еще какой-либо лежащий в основе структуры) название может варьироваться.

Комментариев нет:

Отправить комментарий