все Python 3heapqфункция
heapq.heapify()
операции
Преобразует произвольный список в min-heap за O(n). Изменяет список на месте.
Синтаксис
heapq.heapify(x)
Собрать кучу разом дешевле, чем набивать поэлементно: heapify — O(n), а n вызовов heappush — O(n log n). Главная ловушка — решить, что после heapify список отсортирован: он упорядочен лишь частично, гарантирован только минимум в x[0], и печать списка даёт на вид случайный порядок. Max-heap в heapq нет — обычный обходной приём: хранить значения с обратным знаком.
Примеры
import heapq
data = [5, 2, 8, 1, 4]
heapq.heapify(data)
data[0] # → 1 (минимальный элемент)
heapq.heappop(data) # → 1
heapq.heappop(data) # → 2
data # → [4, 5, 8]
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности