50 likes | 205 Views
- 117 -. Struktur Data Dengan Bahasa C. BAB 13. SORTING II. Tujuan Instruksional Umum: Mahasiswa memahami Jenis dari simple sorting dan algoritma serta implementasinya. Tujuan Instruksional Khusus: Mahasiswa memahami langkah – langkah dari Quick Sort dan implementasinya dalam
E N D
- 117 - Struktur Data Dengan Bahasa C BAB 13 SORTING II Tujuan Instruksional Umum: Mahasiswa memahami Jenis dari simple sorting dan algoritma serta implementasinya. Tujuan Instruksional Khusus: Mahasiswa memahami langkah – langkah dari Quick Sort dan implementasinya dalam bahasa C Mahasiswa memahami langkah – langkah dari Heap Sort dan implementasinya dalam bahasa C Mahasiswa memahami langkah – langkah dari Merge Sort dan implementasinya dalam bahasa C Pokok Bahasan: Algoritma & langkah – langkah Quick Sort beserta programnya Algoritma & langkah – langkah Heap Sort beserta programnya Algoritma & langkah – langkah Merge Sort beserta programnya Latihan 13.1 Advanced Sorting Kelemahan dari Simple Sort Teknik adalah diperlukannya waktu yang lama untuk melakukan sorting , terutama bila data yang hendak disort panjang. Kelemahan ini diatasi dengan Advanced Sort Teknik yang pada umumnya memerlukan waktu yang lebih sedikit. 13.2 Quick Sort Konsep dalam Quick Sort adalah “ memecah “ list yang akan di sort menjadi dua bagian, dan masing- masing bagian akan dilakukan Sort tersendiri. Misalkan elemen yang diurutkan adalah : r[1], r[2],……….r[n] Maka satu langkah dalam quicksort akan menghasilkan : r[1], r[2], ….. r[j -1], (a) r[j+1],…..r[n] (c) r[j] (b) http://www.mercubuana.ac.id Bab 13 Sorting II
- 119 - Struktur Data Dengan Bahasa C Dicari dari kanan ke kiri, sampai ketemu angka yang lebih kecil dari 73, ketemu dengan angka 71. Cek apakah sudah overlapping, bila belum maka tukar tempat antara 79 dengan 71 hasilnya adalah: 73 71 76 72 75 78 79 77 74 j k Pencarian diteruskan dari tempat berakhir tadi, dicari lagi dari kiri kanan, sampai ketemu angka yang lebih besar dari 73, ketemu dengan angka 76. Pencarian dari kanan juga diteruskan dari tempat berakhir tadi, dicari ke kanan untuk menemukan angka yang lebih kecil dari 73, ketemu dengan angka 72. Cek apakah sudah overlapping, ternyata belum, maka tukar tempatkan antara angka 76 dengan 72.hasilnya adalah. 73 71 72 76 75 78 79 77 74 k j Pencarian diteruskan lagi, mencari dari kiri ke kanan sampai ketemu angka yang lebih besar dari 73 , ketemu dengan angka 76. Pencarian dari kanan ke kiri juga dilakukan untuk mencari angka yang lebih kecil dari 73, ketemu dengan angka 72, Ternyata sudah overlapping, sehingga dilakukan pertukaran tempat antara angka yang kecil yaitu : 72 dengan angka yang ingin dicarikan tempat yang tepat, yaitu 73 hasilnya adalah : 72 71 [73] 76 75 78 79 77 74 (a) (b) Sekarang angka 73 sudah berada pad posisi yang tepat, artinya semua angka di sebelah kirinya lebih kecil darinya dan semua angka di sebelah kanannya lebih besar darinya. Pencarian diteruskan untuk dua sub-list berikutnya, yaitu sub list (a) dan sub list (b). Prosedur untuk melakukan Quick Sort adalah sesuai dengan menggunakan Recursive yaitu suatu fungsi yang memanggil dirinya sendiri. http://www.mercubuana.ac.id Bab 13 Sorting II
- 121 - Struktur Data Dengan Bahasa C Langkah 1: membangun Heap awal 390 182 205 45 235 [1] 390 [2] 205 [3] 182 [4] 45 [5] 235 Tree yang dibangun berdasarkan list angka, tetapi masih belum berupa Maximum Heap. Lakukan pertukaran tempat sampai terjadi Maximum Heap seperti pada gambar berikut ini Hasil heapify data[2] 390 182 235 45 205 [1] 390 [2] 235 [3] 182 [4] 45 [5] 205 http://www.mercubuana.ac.id Bab 13 Sorting II