Tentukan “pivot”. Bagi Data menjadi 2 Bagian yaitu Data kurang dari dan Data
lebih besar dari pivot. Urutkan tiap bagian tersebut secara rekursif.
Quick Sort
• Algoritma divide-and-conquer (membagi dan menyelesaikan)
• array A[left..right] dipartisi menjadi dua subarray yang tidak empty Subarray
diurutkan secara rekursif dengan memanggil quicksort
Pseudocode Quick Sort
Quicksort(Arr,left,right)
{
if (left < right)
{
Quicksort(Arr, left, j);
Quicksort(Arr, i, right);
}
}
Pivot
if(pivot<right)
right--
else
swap
if(pivot>left)
left++
else
swap
Partisi
• Jelas, semua kegiatan penting berada pada fungsi partition()
• Menyusun kembali subarray
• Hasil akhir :
• Dua subarray
• Semua elemen pada subarray pertama < semua nilai pada subarray kedua
• Mengembalikan indeks pivot yang membagi subarray
Quick Sort
• This sorting algorihtm uses the idea of divide and conquer.
• It finds the element callde pivot which divides the array into two
halves in such a way that elements in the left half are smaller than
pivot and elements in the right half are greater than pivot
Quick Sort
• We follow three steps recursively :
• Find pivot that divides the array into two halves
• Quick sort the left half
• Quick sort the right half