View
47
Download
5
Category
Tags:
Preview:
DESCRIPTION
Improving Quick Sort. Meningkatkan kemampuan quick sort. Permasalahan dengan data yang urutannya terbalik. Semakin banyak data yang urutannya terbalik, quick sort semakin melambat. Mengindikasikan semakin banyaknya subarray yang dipartisi. 8 9 7 6 5 3 1 0 4 2. Pindah ke Kanan. - PowerPoint PPT Presentation
Citation preview
Improving Quick SortImproving Quick SortMeningkatkan kemampuan quick sort
8 9 7 6 5 3 1 0 4 2
Permasalahan dengan Permasalahan dengan data yang urutannya data yang urutannya terbalikterbalikSemakin banyak data yang urutannya
terbalik, quick sort semakin melambat.
Mengindikasikan semakin banyaknya subarray yang dipartisi.
8 9 7 6 5 3 1 0 4 2
Apa yang terjadi????Apa yang terjadi????Jika terjadi kasus mengurutkan subarray
satu besar dan satu kecil maka efisiensi akan menurun.
Karena subarray yang besar akan dibagi-bagi lebih banyak.
8 9 7 6 5 3 1 0 4 2
Apa yang terjadi????Apa yang terjadi????Situasi terburuk ketika satu subarray
berisi 1 elemen dan subarray yang lain N-1 element.
Lebih buruk lagi jika tiap partisi 1 & N-1.
4 7 2 9 5 3 8 6 10
Jadi….Jadi….Masalahnya ada di pemilihan pivot.Idealnya pivot adalah nilai tengah
dari data yang akan diurutkan.
4 7 2 9 5 3 8 6 10
Jadi….Jadi….Dua subarray yang sama besar
merupakan kondisi optimal.Lebih Optimal lagi jika tiap partisi
pivot nya adalah nilai tengah.
Memilih Memilih The Best PivotThe Best PivotMengambil pivot secara acak itu
mudah, tapi tidak selalu tepat.Mencari nilai tengah dalam array
adalah pilihan tepat, tapi prakteknya pemilihan pivot bisa memerlukan waktu lebih lama dibanding pengurutan itu sendiri.
Memilih Memilih The Best PivotThe Best PivotMengambil pivot secara acak itu
mudah, tapi tidak selalu tepat.Mencari nilai tengah dalam array
adalah pilihan tepat, tapi prakteknya pemilihan pivot bisa memerlukan waktu lebih lama dibanding pengurutan itu sendiri.
Solusinya : Median-of-three
5 7 2 9 0 3 8 6 1 4
Median Of Three?????Median Of Three?????Mencari nilai tengah dari elemen
pertama, tengah, dan akhir yang digunakan sebagai pivot.
5 7 2 9 0 3 8 6 1 4
Median Of Three?????Median Of Three?????Sehingga terhindar dari
pengambilan elemen yang terbesar ataupun terkecil pada data terurut ataupun data urutannya terbalik.
0 7 2 9 4 3 8 6 1 5
Next StepNext StepTukarkan nilai awal,tengah, akhir.Awal diisi nilai terkecil, akhir diisi
nilai terbesar.Dan tengah nilai median
0 7 2 9 4 3 8 6 1 5
Next StepNext StepJadikan median sebagai pivot.Kemudian lanjutkan langkah
pengurutan seperti basic quick sort.
Next StepNext StepHasilnya sampai pivot 4 selesai.
Next StepNext StepHasilnya sampai pivot 4 selesai.Ulangi langkah median-of-three
untuk subarray yang belum terurut.
Next StepNext StepCari median-of-three untuk
subarray yang belum terurut.Tempatkan pivot di tengah
Next StepNext StepHasilnya sampai pivot 6 selesai.Ulangi langkah median-of-three
untuk subarray yang belum terurut.
0 1 2 3 4 5 6 7 8 9
Quick Sort SuccessfullyQuick Sort Successfully
Menangani Partisi KecilMenangani Partisi KecilMedian-of-three tidak dapat bekerja
pada partisi dengan 3 elemen atau kurang dari 3 elemen.
Hal ini disebut cutoff point.Solusinya :
Insertion Sort
Insertion Sort for Small Insertion Sort for Small PartitionPartitionOpsi pertama :
Menggunakan insertion sort ketika bertemu cutoff point.
Insertion Sort for Small Insertion Sort for Small PartitionPartitionOpsi kedua :
Tetap jalankan quick sort, ketika bertemu cutoff hentikan quick sort. Kemudian insertion sort untuk seluruh array.
Insertion Sort for Small Insertion Sort for Small PartitionPartitionTapi jauh lebih baik insertion sort
untuk sejumlah pengurutan kecil daripada satu tapi besar.
Recommended