Algoritma Quicksort adalah salah satu algoritma pengurutan (sorting) yang paling umum digunakan dalam pemrograman komputer.
Algoritma ini menggunakan pendekatan pemecahan masalah secara rekursif dengan membagi himpunan data menjadi dua bagian yang lebih kecil.
Algoritma Quicksort juga dikategorikan sebagai algoritma “divide and conquer” atau “bagi dan taklukkan” yang berarti memecahkan masalah yang lebih besar menjadi masalah yang lebih kecil dan lebih mudah diselesaikan.
Langkah-langkah utama dalam algoritma Quicksort adalah:
-
Memilih pivot, yaitu elemen dari himpunan data yang akan dibandingkan dengan elemen lainnya.
-
Membagi himpunan data menjadi dua bagian, yaitu bagian yang lebih kecil dari pivot (sebelah kiri) dan bagian yang lebih besar dari pivot (sebelah kanan).
-
Mengurutkan bagian kiri dan kanan secara rekursif dengan memilih pivot baru pada setiap iterasi.
-
Menggabungkan kembali kedua bagian yang telah diurutkan.
Contoh penggunaan algoritma Quicksort dalam pemrograman adalah sebagai berikut:
scss
function quicksort(arr) {
if (arr.length <= 1) {
return arr;
} else {
const pivot = arr[0];
const left = [];
const right = [];
for (let i = 1; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...quicksort(left), pivot, ...quicksort(right)];
}
}
const arr = [5, 3, 6, 2, 7, 1, 8, 4];
console.log(quicksort(arr)); // [1, 2, 3, 4, 5, 6, 7, 8]