Урок 13: кучи и top-K
Представьте приёмное отделение больницы: пациентов принимают не по порядку прибытия, а по срочности. Структура, которая делает именно это, называется 'куча' (heap) — очередь с приоритетом, которая всегда даёт быстрый доступ к крайнему элементу (наименьшему или наибольшему). В Python: heapq, со встав
Куча — это как очередь в больнице, которая всегда вызывает следующего самого срочного пациента. В heapq Python 'самый срочный' — это просто наименьшее число.
- куча (heap)
- Структура данных (очередь с приоритетом), позволяющая выполнять push и pop за O(log n) и peek крайнего элемента (min/max) за O(1).
- куча минимумов (min-heap)
- Куча, в которой наименьший элемент всегда находится в корне; heapq в Python — это min-heap, и heappop возвращает минимум.
- top-K
- Поиск K наибольших (или наименьших) элементов. Это можно сделать за O(n log K) с помощью кучи размера K — быстрее, чем полная сортировка.