JSFiddle - React, Tailwind, and code Playground
JavaScript
let arr = [1, 3, 7, 4, 5, 2, 6]
function partition(arr, pivot, left, right) {
while (left <= right) {
while (arr[left] < pivot) {
left++;
}
while (arr[right] > pivot) {
right--;
}
if (left <= right) {
[arr[left], arr[right]] = [arr[right], arr[left]];
left++;
right--;
}
}
return left;
}
function quicksort(arr, left = 0, right = arr.length - 1) {
if (left >= right) return;
let pivot = arr[Math.floor((left + right) / 2)];
let index = partition(arr, pivot, left, right);
quicksort(arr, left, index - 1);
quicksort(arr, index, right);
return arr;
}
console.log(quicksort(arr));