Qo‘llanma · Dasturlash
heap
Masalalar tez orada
Nazariya
Uyum (heap, ustuvor navbat) — eng kichik elementni O(1) da ko‘rsatadi, qo‘shish va olish O(log n).
Python’da heapq (min-heap).
import heapq
h = []
heapq.heappush(h, 7)
heapq.heappush(h, 2)
smallest = heapq.heappop(h) # 2
heapq.heappush(h, -x) # max-heap kerak bo‘lsa — manfiy qiymat saqlang
top3 = heapq.nlargest(3, nums)
Klassik qo‘llanishlar
- Dijkstra algoritmi (eng qisqa yo‘l).
- Har qadamda eng kichik ikkitasini birlashtirish (Huffman, «arqonlarni ulash»).
- Oqimdagi
kta eng katta element: hajmikbo‘lgan min-heap saqlang. - Vazifalarni ustuvorlik bo‘yicha bajarish (simulyatsiya).
C++: priority_queue<int> — max-heap, priority_queue<int, vector<int>, greater<int>> — min-heap.
Bu mavzu bo‘yicha masalalar tez orada qo‘shiladi.