Lewati ke konten utama

K1 · Modul 11

Heap dan antrean prioritas

42 langkah singkat, dari mudah sampai tantangan.

  1. Level 1

    Kenal

  2. Level 2

    Paham

  3. Level 3

    Terapkan

  4. Level 4

    Tantangan

  5. Level 5

    Pendalaman

Intinya

  • Antrean prioritas: masuk, keluar yang terkecil, intip; heap biner memberi O(log n), O(log n), O(1).
  • Heap biner min disimpan di list: anak 2i + 1 dan 2i + 2, induk (i − 1) // 2; tingginya selalu sekitar log₂ n.
  • Heapify dari bawah ke atas O(n); heapsort O(n log n) di tempat, tetapi tidak stabil.
  • Top-k dengan heap berukuran k: O(n log k) waktu, O(k) ruang.
  • Kunci tuple (prioritas, id, data) membuat urutan pasti dan mencegah TypeError saat seri.

Sebelum mulai

±4 jam.

Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.

Hasil belajar: setelah modul ini kamu bisa menjelaskan antrean prioritas dan biaya implementasinya; menyimpan heap biner di dalam list; menulis operasi naik dan turun beserta invariannya; membangun heap dalam waktu linear; menulis heapsort; menyelesaikan top-k, penggabungan k list terurut, dan median berjalan dengan heap; serta memakai heapq dengan kunci tuple yang aman.

Proyek: Kurir Makmur langkah 11: class AntreanPrioritas (kontrak Proyek Kurir §3), heap biner min dengan kunci (batas_menit, id) untuk memilih pesanan yang paling mendesak, termasuk dari_list dengan heapify linear.

Istilah di modul ini (29)

Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course

Bahan modul

Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.

  • 30 contoh kode
  • 9 berkas latihan + tes
  • 1 berkas data
Lihat isi zip
  • BACA-DULU.txt
  • contoh_k1_11_49.py
  • contoh_k1_11_67.py
  • contoh_k1_11_115.py
  • contoh_k1_11_140.py
  • contoh_k1_11_278.py
  • contoh_k1_11_388.py
  • contoh_k1_11_487.py
  • contoh_k1_11_526.py
  • contoh_k1_11_800.py
  • contoh_k1_11_881.py
  • contoh_k1_11_917.py
  • contoh_k1_11_1063.py
  • contoh_k1_11_1107.py
  • contoh_k1_11_1156.py
  • contoh_k1_11_1312.py
  • contoh_k1_11_1367.py
  • contoh_k1_11_1549.py
  • contoh_k1_11_1606.py
  • contoh_k1_11_1635.py
  • contoh_k1_11_1662.py
  • contoh_k1_11_1690.py
  • contoh_k1_11_1719.py
  • contoh_k1_11_1746.py
  • contoh_k1_11_2134.py
  • contoh_k1_11_2157.py
  • contoh_k1_11_2465.py
  • contoh_k1_11_2492.py
  • contoh_k1_11_2550.py
  • contoh_k1_11_2634.py
  • contoh_k1_11_2688.py
  • test_k1_11_1.py
  • test_k1_11_2.py
  • test_k1_11_3.py
  • test_k1_11_4.py
  • test_k1_11_5.py
  • test_k1_11_6.py
  • test_k1_11_7.py
  • test_k1_11_8.py
  • test_k1_11_9.py
  • peta.json