Куча с приоритетом
Куча с приоритетом (priority queue) — это структура данных, которая позволяет эффективно находить и удалять элемент с наивысшим (или наименьшим) приоритетом.
В Python куча с приоритетом реализована с помощью модуля heapq
, который предоставляет функции для работы с бинарной минимальной кучей.
Основные операции
Добавление элемента: heapq.heappush(heap, item)
Добавляет элемент в кучу, сохраняя свойства кучи.
Извлечение элемента с наименьшим приоритетом: heapq.heappop(heap)
Удаляет и возвращает элемент с наименьшим значением из кучи.
Преобразование списка в кучу: heapq.heapify(list)
Преобразует обычный список в кучу за время O(n).
Получение минимального элемента без удаления: heap[0]
Минимальный элемент всегда находится в корне кучи (первый элемент списка).
Пример