Что такое Heap
Python
Senior
Без компании
Что такое Heap
Ответы
Heap (куча) — это специализированная структура данных, представляющая собой почти полное бинарное дерево, удовлетворяющее свойству кучи: для min-heap каждый родительский узел меньше или равен своим потомкам, для max-heap — наоборот.
Основные операции:
- `heapify` — преобразование списка в кучу за O(n)
- `heappush` — добавление элемента за O(log n)
- `heappop` — извлечение корня (min/max) за O(log n)
Пример с `heapq` (min-heap в Python):
```
import heapq
nums = [3, 1, 4, 1, 5]
heapq.heapify(nums) # [1, 1, 4, 3, 5]
heapq.heappush(nums, 2) # [1, 1, 2, 3, 5, 4]
print(heapq.heappop(nums)) # 1
```
Используется в алгоритмах (например, Dijkstra), сортировке (Heapsort) и приоритетных очередях. В Python `heapq` реализует min-heap, для max-heap элементы инвертируются.