Struktur Data Pendahuluan Heap sort adalah satu jenis

  • Slides: 34
Download presentation
Struktur Data

Struktur Data

Pendahuluan Heap sort adalah satu jenis pengurutan (sorting) yang berbasis perbandingan, yang dikemukan pertama

Pendahuluan Heap sort adalah satu jenis pengurutan (sorting) yang berbasis perbandingan, yang dikemukan pertama kali oleh JWJ Williams pada tahun 1964. Algoritma heap sort merupakan salah satu algoritma pengurutan tercepat setelah Merge Sort dan Quick Sort. Program Studi Teknik Informatika UNIKOM

Ketentuan Heap sort, data yang Pelajari danakan bacadisusun kembali harus berbentuk heap materi Tree

Ketentuan Heap sort, data yang Pelajari danakan bacadisusun kembali harus berbentuk heap materi Tree tentang jenis tree dimana pohon yang binary tree, untuk dibuat dalam keadaan mengetahui apa itu CBT! CBT Complete Binary Tree (CBT) Heap Tree Max Heap Nilai dari simpul >= nilai anaknya Min Heap Nilai dari simpul <= nilai anaknya Bentuk Heap tree 2. Min ada dua. Heap, jenis: jika 1. data disusun Max akan Heap, jika secara Descending data akan disusun secara Ascending Program Studi Teknik Informatika UNIKOM Program Studi Teknik Informatika

Contoh Heap Tree Max Heap Min Heap 24 4 19 11 4 15 5

Contoh Heap Tree Max Heap Min Heap 24 4 19 11 4 15 5 8 5 13 Bentuk ini Nilai digunakan Max Heap, parent Bentuk ini digunakan pada data yang akan selalu pada >= data. Nilai yanganakakan disusun secara anaknya, contoh 24 >= disusun secara Ascending(menaik) 19 Ascending(menaik) dan 15, 19 >= 11 dan 5, dst. 11 24 8 19 15 13 Bentuk ini digunakan Min Heap, Nilai parent pada data yang akan selalu <= Nilai anakdisusun secara anaknya, contoh 4 <= 5 Descending (menurun) dan 8, 5 <= 11 dan 19, dst. Program Studi Teknik Informatika UNIKOM

Proses pada Heap Pembentukan Heap Pengurutan Data pada Heap Program Studi Teknik Informatika UNIKOM

Proses pada Heap Pembentukan Heap Pengurutan Data pada Heap Program Studi Teknik Informatika UNIKOM

Pembentukan Heap 1 14 7 2 3 14 11 7 3 2 1 2

Pembentukan Heap 1 14 7 2 3 14 11 7 3 2 1 2 3 14 11 5 4 5 6 Proses sift_down dari simpul bernomor Setelah terbentuk tengah (banyak simpul/2 CBT, ataumaka N/2), 4 5 6 lakukan reorganisasi CBT Dimisalkan ada akan data yang Darisampai data awal menurun simpul pertama. Data pertama adalah 7 menjadi Heap yang akan disusun secara 14 3 11 7 5 2 CBTTree dengan (k=1), maka anak kiri 7 N = 6, dibentuk Tengah = menjadi N/2 = 6/2 = 3 Heap, Setelah Max jenisnya Max Heap (karena Ascending seperti ini rumus anak kiri (2 k) dan adalah 2*1=2 (data ke-2 Lakukanmaka akan dilakukan reorganisasi pada simpul ke-3 data akan disusun secara anak kanan (2 k+1), yaitu 3) dan anak kanan Lakukan proses Heap Sort reorganisasi pada simpul ke-2 Ascending), dimana parent dimana k adalah parent adalah 2*1+1=3 (data harus >= anak-anaknya Lakukan reorganisasi pada simpul ke-1 Anak kiri 3 adalah 2*2=4 25 ke-3 yaitu 2) (data ke-4 adalah 14) dan anak kanan 3 adalah 2*2+1=5 14 11 (data 5 ke-5 3 7 adalah 11), dst 1 2 3 4 5 2 6 Dikarenakan posisi data sudah berubah seperti yang terlihat pada Max Heap, maka data di array pun menjadi seperti ini Program Studi Teknik Informatika UNIKOM

Pengurutan Data Heap (1) a. Binary Tree dalam keadaan Max Heap b. “Pecat” root

Pengurutan Data Heap (1) a. Binary Tree dalam keadaan Max Heap b. “Pecat” root dan tukarkan dengan simpul pada posisi terakhir c. Banyaknya simpul dikurangi 1 d. Jika N > 1, maka lakukan lagi reorganisasi heap e. Lakukan langkah pada point b sampai point d hingga simpul habis (N=0) 1 14 2 2 3 11 5 4 5 6 3 7 2 14 2 11 5 3 7 2 14 1 3 4 5 6 2 Program Studi Teknik Informatika UNIKOM

Pengurutan Data Heap (2) 1 11 2 2 3 7 2 11 5 4

Pengurutan Data Heap (2) 1 11 2 2 3 7 2 11 5 4 5 3 2 7 11 7 2 2 11 5 3 1 3 4 2 2 2 7 14 14 11 5 Reorganisasi Heap kembali Tengah = N/2 = 5/2 = 2 Lakukan reorganisasi pada simpul ke-1 b. “Pecat” root dan tukarkan dengan simpul pada posisi terakhir c. Banyaknya simpul dikurangi 1 d. Jika N > 1, maka lakukan lagi reorganisasi heap e. Lakukan langkah pada point b sampai point d hingga simpul habis (N=0) 6 Program Studi Teknik Informatika UNIKOM

Pengurutan Data Heap (3) 1 2 7 2 3 5 4 3 2 2

Pengurutan Data Heap (3) 1 2 7 2 3 5 4 3 2 2 7 3 5 73 2 1 2 3 4 11 2 7 14 2 5 Reorganisasi Heap kembali Tengah = N/2 = 4/2 = 2 Lakukan reorganisasi pada simpul ke-1 b. “Pecat” root dan tukarkan dengan simpul pada posisi terakhir c. Banyaknya simpul dikurangi 1 d. Jika N > 1, maka lakukan lagi reorganisasi heap e. Lakukan langkah pada point b sampai point d hingga simpul habis (N=0) 6 Program Studi Teknik Informatika UNIKOM

Pengurutan Data Heap (4) Reorganisasi Heap kembali Tengah = N/2 = 3/2 = 1

Pengurutan Data Heap (4) Reorganisasi Heap kembali Tengah = N/2 = 3/2 = 1 Lakukan reorganisasi pada simpul ke-1 1 5 2 2 3 3 5 2 2 5 3 5 25 73 2 7 11 2 7 14 2 1 2 3 4 5 b. “Pecat” root dan tukarkan dengan simpul pada posisi terakhir c. Banyaknya simpul dikurangi 1 d. Jika N > 1, maka lakukan lagi reorganisasi heap e. Lakukan langkah pada point b sampai point d hingga simpul habis (N=0) 6 Program Studi Teknik Informatika UNIKOM

Pengurutan Data Heap (5) Reorganisasi Heap kembali Tengah = N/2 = 2/2 = 1

Pengurutan Data Heap (5) Reorganisasi Heap kembali Tengah = N/2 = 2/2 = 1 Lakukan reorganisasi pada simpul ke-1 1 3 2 2 2 3 23 23 5 25 73 2 7 11 2 7 14 2 1 2 3 4 5 b. “Pecat” root dan tukarkan dengan simpul pada posisi terakhir c. Banyaknya simpul dikurangi 1 d. Jika N > 1, maka lakukan lagi reorganisasi heap e. Lakukan langkah pada point b sampai point d hingga simpul habis (N=0) 6 Program Studi Teknik Informatika UNIKOM

Pengurutan Data Heap (6) Karena N = 1, maka tidak terjadi Reorganisasi Heap 1

Pengurutan Data Heap (6) Karena N = 1, maka tidak terjadi Reorganisasi Heap 1 2 b. “Pecat” root c. Banyaknya simpul dikurangi 1 Karena harga N sudah sama dengan nol (0), maka proses pengurutan data selesai 22 23 5 25 73 2 7 11 2 7 14 2 1 2 3 4 5 6 Program Studi Teknik Informatika UNIKOM

Latihan Urutkan data pada tabel di bawah ini secara descending berdasarkan Nama, menggunakan metode

Latihan Urutkan data pada tabel di bawah ini secara descending berdasarkan Nama, menggunakan metode Heap Sort. No. Nama 1 Rahmat 2 Didin 3 Ahmad 4 Joned 5 Syahrul 6 Riki 7 Arif 8 Susi 9 Donni 10 Asih Program Studi Teknik Informatika UNIKOM

Pembentukan CBT Complete Binary Tree Rahmat Didin Ahmad Joned Susi Syahrul Donni Riki Arif

Pembentukan CBT Complete Binary Tree Rahmat Didin Ahmad Joned Susi Syahrul Donni Riki Arif Asih Bukan Heap Rahmat 1 Didin Ahmad Joned Syahrul Riki Arif Susi Donni Asih 2 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pembentukan Heap Rahmat Ahmad Asih Didin Joned Donni Susi Rahmat Arif Ahmad Syahrul Riki

Pembentukan Heap Rahmat Ahmad Asih Didin Joned Donni Susi Rahmat Arif Ahmad Syahrul Riki Asih Didin Arif Rahmat Donni Syahrul Asih Joned Heap Ahmad 1 Asih 2 Arif Donni Didin Riki Rahmat Susi Joned Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Ahmad Arif Asih Donni Susi Didin Joned Riki Rahmat Syahrul Bukan

Pengurutan Heap Syahrul Ahmad Arif Asih Donni Susi Didin Joned Riki Rahmat Syahrul Bukan Heap Syahrul Ahmad 1 Asih 2 Arif Donni Didin Riki Rahmat Susi Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Arif Rahmat Arif Syahrul Asih Donni Susi Syahrul Arif 1 Didin

Pengurutan Heap Syahrul Arif Rahmat Arif Syahrul Asih Donni Susi Syahrul Arif 1 Didin Joned Asih 2 Riki Rahmat Syahrul Heap Rahmat Syahrul Arif Donni Didin Riki Rahmat Syahrul Susi Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Joned Arif Asih Donni Susi Rahmat Didin Riki Syahrul Joned Bukan Heap

Pengurutan Heap Joned Arif Asih Donni Susi Rahmat Didin Riki Syahrul Joned Bukan Heap Arif Joned 1 Asih 2 Rahmat Donni Didin Riki Syahrul Susi Arif Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Asih Joned Didin Donni Rahmat Didin Joned Susi Joned Asih 1 Riki

Pengurutan Heap Asih Joned Didin Donni Rahmat Didin Joned Susi Joned Asih 1 Riki Syahrul Heap Joned Didin Asih 2 Rahmat Donni Joned Didin Riki Syahrul Susi Arif Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Asih Susi Rahmat Didin Donni Joned Susi Asih Susi 1 Riki Syahrul

Pengurutan Heap Asih Susi Rahmat Didin Donni Joned Susi Asih Susi 1 Riki Syahrul Bukan Heap Didin 2 Rahmat Donni Joned Riki Syahrul Asih Susi Arif Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Didin Susi Rahmat Donni Susi Didin Donni Susi Joned Riki Syahrul Heap

Pengurutan Heap Didin Susi Rahmat Donni Susi Didin Donni Susi Joned Riki Syahrul Heap Susi Didin 1 Didin Donni Susi 2 Rahmat Donni Susi Joned Riki Syahrul Asih Susi Joned Arif Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Didin Donni Rahmat Joned Susi Riki Syahrul Bukan Heap Didin Syahrul

Pengurutan Heap Syahrul Didin Donni Rahmat Joned Susi Riki Syahrul Bukan Heap Didin Syahrul 1 Donni 2 Rahmat 3 Susi 4 Joned 5 Riki 6 Syahrul Didin Asih Susi Joned Arif Ahmad Syahrul 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Donni Syahrul Joned Rahmat Syahrul Joned Susi Riki Heap Donni Rahmat

Pengurutan Heap Syahrul Donni Syahrul Joned Rahmat Syahrul Joned Susi Riki Heap Donni Rahmat Syahrul Donni Syahrul Joned 1 2 3 Susi Joned Syahrul Riki Syahrul Didin Asih Susi Joned Arif Ahmad Syahrul 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Donni Riki Joned Rahmat Syahrul Susi Riki Bukan Heap Donni Riki 1

Pengurutan Heap Donni Riki Joned Rahmat Syahrul Susi Riki Bukan Heap Donni Riki 1 Joned 2 Rahmat Susi Syahrul Donni Riki Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Joned Riki Rahmat Syahrul Susi Heap Joned Riki 1 Joned Riki 2

Pengurutan Heap Joned Riki Rahmat Syahrul Susi Heap Joned Riki 1 Joned Riki 2 Rahmat Susi Syahrul Donni Riki Syahrul Didin Susi Asih Joned Arif Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Joned Riki Rahmat Syahrul Susi Bukan Heap Joned Syahrul 1 Riki

Pengurutan Heap Syahrul Joned Riki Rahmat Syahrul Susi Bukan Heap Joned Syahrul 1 Riki 2 Rahmat Susi Joned Syahrul Donni Riki Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Rahmat Riki Rahmat Syahrul Susi Heap Rahmat Syahrul 1 Riki 2

Pengurutan Heap Syahrul Rahmat Riki Rahmat Syahrul Susi Heap Rahmat Syahrul 1 Riki 2 Rahmat Syahrul 3 Susi Donni Syahrul Joned Donni Riki Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Rahmat Susi Riki Syahrul Susi Bukan Heap Rahmat Susi 1 Riki 2

Pengurutan Heap Rahmat Susi Riki Syahrul Susi Bukan Heap Rahmat Susi 1 Riki 2 Syahrul Susi Rahmat Donni Syahrul Joned Donni Riki Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Susi Riki Susi Syahrul Heap Susi Riki 1 Riki Susi 2 Syahrul

Pengurutan Heap Susi Riki Susi Syahrul Heap Susi Riki 1 Riki Susi 2 Syahrul Susi Rahmat 3 4 Donni Syahrul Joned 5 Donni Riki Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Riki Syahrul Susi Syahrul Bukan Heap Syahrul Riki Susi 1 2 Susi

Pengurutan Heap Riki Syahrul Susi Syahrul Bukan Heap Syahrul Riki Susi 1 2 Susi Riki Rahmat Syahrul 3 4 Donni Syahrul Joned 5 Donni Riki 6 Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Susi Syahrul Heap Syahrul Susi 1 Syahrul Susi 2 Riki Syahrul

Pengurutan Heap Syahrul Susi Syahrul Heap Syahrul Susi 1 Syahrul Susi 2 Riki Syahrul 3 Susi Rahmat 4 Donni Syahrul Joned 5 Donni Riki Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Susi Syahrul Heap Syahrul Susi Riki Susi Syahrul 1 2 3

Pengurutan Heap Syahrul Susi Syahrul Heap Syahrul Susi Riki Susi Syahrul 1 2 3 Susi Rahmat Donni Syahrul Joned Donni Riki Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM

Pengurutan Heap Syahrul Susi Syahrul 1 2 Riki Syahrul Susi Rahmat Donni Syahrul Joned

Pengurutan Heap Syahrul Susi Syahrul 1 2 Riki Syahrul Susi Rahmat Donni Syahrul Joned Donni Riki Syahrul Didin Asih Susi Arif Joned Ahmad Syahrul 3 4 5 6 7 8 9 10 Program Studi Teknik Informatika UNIKOM