Matakuliah Tahun : T0034 / Perancangan & Analisis Algoritma : 2008 Pertemuan 7 PRIORITY QUEUE & HEAP 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) – • RemoveMin() – • Mendapatkan nilai value terkecil. Size() – • Mendapatkan prioritas terkecil. GetMinValue() – • Mirip operasi POP pada queue biasa, yaitu mendapatkan nilai elemen “paling depan” dalam antrian (dengan memperhatikan prioritasnya). GetMinKey() – • Yaitu memasukkan sebuah elemen ke dalam value di mana k adalah key dan v adalah value. Mendapatkan ukuran besarnya queue. IsEmpty() – Bina Nusantara Memeriksa apakah queue berisi sesuatu atau tidak. 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 – 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 • 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 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) – 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 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 f (n) (n 2 log n) LATIHAN • Buatlah langkah-langkah menurutkan bilanganbilangan 34, 15, 23, 9, 41, 26, 39, 11, 7, 28 dengan menggunakan Heap Sort! Bina Nusantara REVIEW • Apa yang sudah dipahami? • Apa yang akan dibahas selanjutnya? Bina Nusantara
© Copyright 2024 Paperzz