897653104 2
897653104 2
897653104 2
Jadi.
Masalahnya ada di pemilihan pivot. Idealnya pivot adalah nilai tengah dari data yang akan diurutkan.
47295386 10
Jadi.
Dua subarray yang sama besar merupakan kondisi optimal. Lebih Optimal lagi jika tiap partisi pivot nya adalah nilai tengah.
47295386 10
Solusinya :
Median-of-
three
Median Of Three?????
Mencari nilai tengah dari elemen pertama, tengah, dan akhir yang digunakan sebagai pivot.
572903861 4
Median Of Three?????
Sehingga terhindar dari pengambilan elemen yang terbesar ataupun terkecil pada data terurut ataupun data urutannya terbalik.
572903861 4
Next Step
Tukarkan nilai awal,tengah, akhir. Awal diisi nilai terkecil, akhir diisi nilai terbesar. Dan tengah nilai median
072943861 5
Next Step
Jadikan median sebagai pivot. Kemudian lanjutkan langkah pengurutan seperti basic quick sort.
072943861 5
Next Step
012347869 5
Next Step
Hasilnya sampai pivot 4 selesai. Ulangi langkah median-of-three untuk subarray yang belum terurut.
012347869 5
Next Step
Cari median-of-three untuk subarray yang belum terurut. Tempatkan pivot di tengah
012345869 7
Next Step
Hasilnya sampai pivot 6 selesai. Ulangi langkah median-of-three untuk subarray yang belum terurut.
012345689 7
012345678 9
Insertion Sort
012345689 7
Opsi kedua : Tetap jalankan quick sort, ketika bertemu cutoff hentikan quick sort. Kemudian insertion sort untuk seluruh array.
012345689 7
012345689 7