Data Structure Chapter SORTING Dahlia Widhyaestoeti, S.Kom
Agenda Hari Ini Heap Sort Radix Sort Merge Sort Quick Sort
Heap Sort Sort yang memanfaatkan Pohon Heap. Pohon Heap adalah pohon biner complete dimana nilai yang terkandung dalam simpul bapak (Father/F) lebih besar atau lebih kecil dari nilai kedua buah simpul anaknya atau simpul Son (S), sedangkan simpul anak cabang kiri bisa lebih besar, lebih kecil atau sama dengan nilai simpul anak cabang kanan. Contoh pohon heap 0 9 37 86 Contoh bukan pohon heap 0 48 37 86 3
Heap Sort Sistem Penomoran Simpul n 0 5 F=Father n+ n+ S S=Son 4
Heap Sort Proses 0 3 4 5 6 7 7 57 48 37 9 86 33 Data awal Membentuk Heap 0 3 4 5 6 7 9 37 86 33 48 57 5 Data membentuk Pohon Heap 5
Heap Sort Proses 0 3 4 5 6 7 57 5 48 37 9 86 33 Tahap 5 0 57 0 57 5 48 57 5 37 9 86 33 6
Heap Sort Proses 0 3 4 5 6 7 57 5 48 37 9 86 33 Tahap 57 0 Tetap 57 5 48 48 37 9 86 33 7
Tahap 3 Heap Sort Proses 0 3 4 5 6 7 57 5 48 37 9 86 33 57 5 48 5 37 37 9 86 37 3 5 3 33 57 57 0 37 48 5 9 86 37 Tetap 33 0 3 4 5 6 7 57 37 48 5 9 86 33 8
Heap Sort Proses 0 3 4 5 6 7 57 37 48 5 9 86 33 Tahap 4 37 4 Tetap 0 3 4 5 6 7 57 37 48 5 9 86 33 57 37 48 5 9 86 33 9
Tahap 5 Heap Sort Proses 0 3 4 5 6 7 57 37 48 5 9 86 33 57 37 9 48 9 5 48 86 9 5 48 5 33 0 3 4 5 6 7 9 37 57 5 48 86 33 57 0 9 0 9 37 57 9 57 5 48 86 33 0
Tahap 6 Heap Sort Proses 0 3 4 5 6 7 9 37 86 5 48 57 33 9 37 86 57 86 5 48 57 86 6 57 6 33 0 3 4 5 6 7 9 37 86 5 48 57 33 9 9 0 Tetap 37 86 86 5 48 57 33
Tahap 7 Heap Sort Proses 9 37 86 5 3 33 3 33 48 57 33 7 5 7 5 0 3 4 5 6 7 9 37 86 33 48 57 5 Sampai disini bagian algoritma yang berfungsi menjadikan pohon awal menjadi Pohon Heap. (Pohon Heap belum terurut).
Tahap Heap Sort Proses Ujung paling kanan TAHAP 0 9 37 86 3 4 33 48 57 5 5 x Langkah- Menyimpan nilai ujung paling kanan di X 0 3 4 5 6 7 9 37 86 33 48 57 5 0 9 37 86 3 4 33 48 57 7 5 6 9 9 37 86 3 4 0 33 48 57 7 5 6 Langkah- Menenempatkan nilai tertinggi di ujung paling kanan 5 7 9 5 6 86 37 86 3 4 0 33 48 57 7 5 6 Langkah-3 86>37, dan 86>X Maka 86 yang diambil menggntikan 9 di no.0 3
Tahap Heap Sort Proses 0 3 4 5 6 7 9 37 86 33 48 57 5 0 3 4 5 6 7 86 37 57 33 48 5 9 9 0 86 37 57 3 4 33 48 57 7 5 6 Langkah-4 57>48, dan 57>X Maka 57 yang diambil menggntikan 86 di no. 9 0 86 37 57 3 4 33 48 5 7 5 6 Langkah-5 Selesai karena simpul 6 tidak punya anak, maka terakhir X disisipkan ke no 6 menggantikan 57 4
Tahap Heap Sort Proses Ujung paling kanan TAHAP 0 86 37 57 3 4 33 48 5 5 x 0 3 4 5 6 7 86 37 57 33 48 5 9 9 7 5 6 9 0 86 37 57 3 4 33 48 5 7 5 6 Langkah- Menyimpan nilai ujung paling kanan Tahap- di X 86 37 57 3 4 33 48 86 9 7 5 6 Langkah- Menenempatkan nilai tertinggi di ujung paling kanan Tahap- 57 37 57 3 4 33 48 86 9 7 5 6 Langkah-3 57>37, dan 57>X Maka 57 yang diambil menggntikan 86 di no.0 5
Tahap Heap Sort Proses 57 37 48 3 4 33 48 86 57 37 48 3 4 33 5 86 9 7 5 6 Langkah-4 Hanya 48, (dan 48>X) Yang bisa menggantikan 57 di simpul no. 9 7 5 6 Langkah-5 Selesai karena 5 tidak punya anak, maka terakhir X diisikan ke A[5] menggantikan 48 0 3 4 5 6 7 86 37 57 33 48 5 9 0 3 4 5 6 7 57 37 48 33 5 86 9 6
Tahap 3 5 x Heap Sort Proses Ujung paling kanan TAHAP 3 0 3 4 5 6 7 57 37 48 33 5 86 9 57 37 48 3 4 33 5 86 9 7 5 6 Simpul 6 dan 7 tidak ikut di proses 57 37 48 3 4 33 5 57 37 48 3 4 33 57 48 37 48 3 4 33 57 Langkah- Menyimpan nilai ujung paling kanan Tahap-3 di X Langkah- Menenempatkan nilai tertinggi di ujung paling kanan Tahap-3 Langkah-3 48>37 Maka 48 yang diambil menggntikan 57 di no.0 7
Tahap 3 Heap Sort Proses 48 37 5 3 4 33 57 Langkah-4 Selesai karena simpul tidak punya anak yang bisa menggantikannya, maka terakhir X diisikan ke A[], menngantikan 48 0 3 4 5 6 7 57 37 48 33 5 86 9 0 3 4 5 6 7 48 37 5 33 57 86 9 Dan selanjutnya dan berakhir sampai tahap ke-7 8
Radix Sort Radix adalah dasar atau basis (base) bilangan. Bilangan yang biasa digunakan sehari-hari adalah bilangan decimal yaitu bilangan dasar 0. Radix Sort adalah sort yang dilakukan dengan cara mengelompokkan nilai-nilai, bukan membandingkan nilai besar atau nilai kecil. Nilai-nilai dikelompokkan secara bertahap, dimana setiap tahap nilai-nilai dikelompokkan berdasarkan nilai setiap posisi angka, satuan, puluhan, ratusan dst. 9
Radix Sort Proses Misal data yang ingin di sort (dalam array dimensi) : 0 3 4 5 6 7 8 9 0 3 4 5 7 38 65 3 75 5 4 56 77 5 4 3 45 Dari semua nilai diatas, nilai yang terbesar adalah 75. Karena bilangan terbesar terdiri dari 3 angka, maka pengelompokkan dibagi 3 tahap. 0
Angka satuan Radix Sort Proses 0 3 7 3 4 3 4 4 Tahap Nilai dikelompokkan berdasarkan angka satuan yang sama, sehingga terlihat kelompok sebagai berikut: 5 5 65 75 5 5 45 6 56 7 77 8 38 9 Kelompok nilai yang angka satuannya sama Kemudian dijadikan satu kembali kedalam array menjadi: 0 3 4 5 6 7 8 9 0 3 4 3 7 3 4 4 5 65 75 5 5 45 56 77 38
Angka puluhan Radix Sort Proses 0 05 4 5 3 5 75 3 3 38 4 4 48 5 56 6 65 7 7 77 8 9 Tahap Nilai nilai dari tahap dikelompokkan berdasarkan angka puluhan, sehingga didapat kelompok sebagai berikut: Kelompok nilai yang angka puluhannya sama Kemudian dijadikan satu kembali kedalam array menjadi: 0 3 4 5 6 7 8 9 0 3 4 5 4 5 3 5 75 3 38 4 45 56 65 7 77
Angka ratusan Kemudian dijadikan satu kembali kedalam array menjadi: Radix Sort Proses Tahap 3 Hasil dari tahap dikelompokkan lagi berdasarkan angka ratusan, sehingga didapat kelompok sebagai berikut: 0 005 0 05 05 03 038 04 045 056 077 65 7 4 3 3 4 5 6 7 75 8 9 Kelompok nilai yang angka ratusannya sama 0 3 4 5 6 7 8 9 0 3 4 5 5 5 3 38 4 45 56 77 65 7 4 3 75 3
Merge Sort 4
Merge Sort Data awal 5
Merge Sort 6
Merge Sort 7
Merge Sort 8
Merge Sort 9
Merge Sort 30
Merge Sort 3
Merge Sort 3
Merge Sort 33
Merge Sort 34
Merge Sort 35
Merge Sort 36
Merge Sort 37
Quick Sort Metode pengurutan yang membandingkan suatu elemen (pivot) dengan elemen yang lain yang lebih kecil dari pada pivot terletak disebelah kiri pivot sedangkan elemen yang lebih besar dari pivot diletakkan di sebelah kanan pivot. Proses yang dilakukan : Cari nilai pivot : i bergerak ke kiri ke kanan sampai mendapat nilai>=pivot j bergerak ke kanan ke kiri sampai mendapat nilai<pivot 38
Quick Sort 39
Quick Sort 40
Quick Sort 4
Quick Sort 4
Quick Sort 43
Quick Sort 44
Quick Sort 45