K1 · Modul 11
Heap dan antrean prioritas
42 langkah singkat, dari mudah sampai tantangan.
Level 1
Kenal
Level 2
Paham
Level 3
Terapkan
Level 4
Tantangan
Level 5
Pendalaman
Intinya
- Antrean prioritas:
masuk,keluaryang terkecil,intip; heap biner memberi O(log n), O(log n), O(1). - Heap biner min disimpan di list: anak
2i + 1dan2i + 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 mencegahTypeErrorsaat 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