21
Improving Quick Sort Improving Quick Sort Meningkatkan kemampuan quick sort

Improving Quick Sort

  • Upload
    niran

  • View
    47

  • Download
    5

Embed Size (px)

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

Page 1: Improving Quick Sort

Improving Quick SortImproving Quick SortMeningkatkan kemampuan quick sort

Page 2: Improving 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.

Page 3: Improving Quick Sort

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.

Page 4: Improving Quick Sort

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.

Page 5: Improving Quick Sort

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.

Page 6: Improving Quick Sort

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.

Page 7: Improving Quick Sort

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.

Page 8: Improving Quick Sort

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

Page 9: Improving Quick Sort

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.

Page 10: Improving Quick Sort

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.

Page 11: Improving Quick Sort

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

Page 12: Improving Quick Sort

0 7 2 9 4 3 8 6 1 5

Next StepNext StepJadikan median sebagai pivot.Kemudian lanjutkan langkah

pengurutan seperti basic quick sort.

Page 13: Improving Quick Sort

Next StepNext StepHasilnya sampai pivot 4 selesai.

Page 14: Improving Quick Sort

Next StepNext StepHasilnya sampai pivot 4 selesai.Ulangi langkah median-of-three

untuk subarray yang belum terurut.

Page 15: Improving Quick Sort

Next StepNext StepCari median-of-three untuk

subarray yang belum terurut.Tempatkan pivot di tengah

Page 16: Improving Quick Sort

Next StepNext StepHasilnya sampai pivot 6 selesai.Ulangi langkah median-of-three

untuk subarray yang belum terurut.

Page 17: Improving Quick Sort

0 1 2 3 4 5 6 7 8 9

Quick Sort SuccessfullyQuick Sort Successfully

Page 18: Improving Quick Sort

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

Page 19: Improving Quick Sort

Insertion Sort for Small Insertion Sort for Small PartitionPartitionOpsi pertama :

Menggunakan insertion sort ketika bertemu cutoff point.

Page 20: Improving Quick Sort

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.

Page 21: Improving Quick Sort

Insertion Sort for Small Insertion Sort for Small PartitionPartitionTapi jauh lebih baik insertion sort

untuk sejumlah pengurutan kecil daripada satu tapi besar.