实现快速排序
const arr = [1, 2, 9, 3, 4, -1, 8, -2];
console.log(quickSort(arr, 0, arr.length - 1));
function partition(arr, left, right) {
let i = left;
let j = right;
const x = arr[i];
while (i < j) {
while (i < j && arr[j] >= x)
j--;
while (i < j && arr[i] <= x)
i++;
if (i !== j) {
[arr[i], arr[j]] = [arr[j], arr[i]];
}
}
[arr[left], arr[i]] = [arr[i], arr[left]];
return i;
}
function quickSort(arr, left, right) {
if (left < right) {
let i = partition(arr, left, right);
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
return arr;
}