- Bila elemen dalam array kurang dari jumlah tertentu (biasanya 2), proses selesai.
- Ambil sebuah elemen yang berfungsi sebagai poros.
- Pisahkan array dalam 2 bagian, sebelah kiri lebih kecil dari poros, sebelah kanan lebih besar dari poros.
- Ulangi proses secara rekursif pada tiap-tiap bagian.
Contoh Quick sort dalam gambar
Contoh Pseudocode Quick Sort
Quicksort(A as array, low as int, high as int)
if (low < high)
pivot_location = Partition(A,low,high)
Quicksort(A,low, pivot_location - 1)
Quicksort(A, pivot_location + 1, high)
Partition(A as array, low as int, high as int)
pivot = A[low] leftwall = low for i = low + 1 to high
if (A[i] < pivot)
then leftwall = leftwall + 1 swap(A[i], A[leftwall]) swap(A[low],A[leftwall])
return (leftwall)
if (low < high)
pivot_location = Partition(A,low,high)
Quicksort(A,low, pivot_location - 1)
Quicksort(A, pivot_location + 1, high)
Partition(A as array, low as int, high as int)
pivot = A[low] leftwall = low for i = low + 1 to high
if (A[i] < pivot)
then leftwall = leftwall + 1 swap(A[i], A[leftwall]) swap(A[low],A[leftwall])
return (leftwall)
Program selengkapnya ada disini (menggunakan Java)
maksud dari pivot value itu apa ya?
ReplyDeletenilai poros yang digunakan sebagai patokan lebih besar atau lebih kecil, kalau dalam animai yang warna hitam
Deletemas cara nentuin pivot gimana ya?
ReplyDeleteada contoh program nya gak . . thxs