Asosiy tarkibga o‘tish

O‘rganish

Kirish
Qo‘llanma

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 k ta eng katta element: hajmi k bo‘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.

Shu mavzu kirgan kurslar

Menyu

Ko‘rinish

Klaviatura yorliqlari

Ctrl K yoki /
Qidirish va buyruqlar
g h
Bosh sahifa
g p
Masalalar
g c
Musobaqalar
g r
Reyting
Ctrl Enter
Masala sahifasida — yechimni yuborish
?
Shu oyna