Pertemuan 7 PRIORITY QUEUE & HEAP Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 2008 Pertemuan 7 PRIORITY QUEUE & HEAP
Adalah pengembangan lebih lanjut dari konsep Queue PRIORITY QUEUE Adalah pengembangan lebih lanjut dari konsep Queue yaitu sebuah queue yang setiap komponennya terdiri atas (key, value) Contoh aplikasi Priority Queue Antrian calon penumpang pesawat terbang yang standby Stock market [buku utama, bab 4.3] Bina Nusantara
OPERASI PRIORITY QUEUE InsertItem(k,v) Yaitu memasukkan sebuah elemen ke dalam value di mana k adalah key dan v adalah value. RemoveMin() Mirip operasi POP pada queue biasa, yaitu mendapatkan nilai elemen “paling depan” dalam antrian (dengan memperhatikan prioritasnya). GetMinKey() Mendapatkan prioritas terkecil. GetMinValue() Mendapatkan nilai value terkecil. Size() Mendapatkan ukuran besarnya queue. IsEmpty() Memeriksa apakah queue berisi sesuatu atau tidak. Bina Nusantara
IMPLEMENTASI PRIORITY QUEUE Unsorted List InsertItem O(1) RemoveKey(), GetMinKey() O(n) Sorted List InsertItem O(n) RemoveKey(), GetMinKey() O(1) Bina Nusantara
PQ UNTUK SORT Selection Sort Insertion Sort Adalah variasi dari PQ dengan unsorted list Menambahkan elemen baru memerlukan waktu O(n) Menghilangkan sebuah elemen memerlukan waktu 1+2+3+...+n berarti O(n2) Insertion Sort Adalah variasi dari PQ dengan sorted list Menambahkan elemen baru memerlukan waktu 1+2+3+...+n berarti O(n2) Menghilangkan sebuah elemen memerlukan waktu O(n) Bina Nusantara
Heap adalah sebuah Tree yang Memenuhi syarat Binary Tree secara lengkap Terdiri atas internal node dan external node Setiap internal node menyimpan sebuah nilai Nilai-nilai pada setiap node-nya memenuhi syarat Heap Minimum atau Heap Maksimum [buku utama, bab 4.4.2] Bina Nusantara
Pembahasan selanjutnya menggunakan Heap Minimum MAXIMUM / MINIMUM HEAP Heap Maksimum jika nilai root lebih besar dari nilai left child dan right child Heap Minimum jika nilai root lebih kecil dari nilai left child dan right child Pembahasan selanjutnya menggunakan Heap Minimum Bina Nusantara
MINIMUM HEAP [buku utama, ilustrasi 4.8] Bina Nusantara
PRIORITY QUEUE PADA HEAP [buku utama, ilustrasi 4.10] Bina Nusantara
OPERASI HEAP InsertNode(k) RemoveNode Empty Yaitu memasukkan sebuah node baru ke dalam heap. RemoveNode Yaitu mengambil nilai root node pada heap, menghapus root node, kemudian mengatur ulang heap. Empty Bina Nusantara
INSERT NODE [buku utama, ilustrasi 4.11] Bina Nusantara
REMOVE NODE [buku utama, ilustrasi 4.12] Bina Nusantara
HEAP SORT Adalah teknik pengurutan data menggunakan sifat-sifat heap. Langkah-langkah : Semua bilangan dimasukkan ke heap dengan perintah InsertNode Kemudian heap dikosongkan satu per satu dengan perintah RemoveNode Setiap pengosongan, catat hasilnya Hasilnya, bilangan sudah berurut Misalkan kita memiliki bilangan 21, 45, 15, 30 dan 19 untuk diurutkan. [buku utama, bab 5.2.4] Bina Nusantara
[buku utama, ilustrasi 5.3] ILUSTRASI HEAP SORT [buku utama, ilustrasi 5.3] Bina Nusantara
KOMPLEKSITAS HEAP SORT Kompleksitas algoritma Heap Sort terdiri atas Kompleksitas membangun heap Kompleksitas RemoveNode sampai habis Maka kompleksitas Heap Sort Bina Nusantara
LATIHAN Buatlah langkah-langkah menurutkan bilangan-bilangan 34, 15, 23, 9, 41, 26, 39, 11, 7, 28 dengan menggunakan Heap Sort! Bina Nusantara
Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? Bina Nusantara