function quickSort(arr, left, right) {
if (left >= right) {
return;
}
let pivot = partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
function partition(arr, left, right) {
let pivot = left;
while (left < right) {
while (left < right && arr[right] >= arr[pivot]) {
right--;
}
while (left < right && arr[left] <= arr[pivot]) {
left++;
}
swap(arr, left, right);
}
swap(arr, left, pivot);
return left;
}
function swap(arr, a, b) {
if (a === b) {
return;
}
let temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
quickSort(arr, 0, arr.length - 1);
console.log("sorted:", arr);
详细逻辑,參考文章:快排的三种方法
本文详细介绍了快速排序算法的实现,包括quickSort函数、partition函数和swap函数,展示了如何通过分治策略对数组进行排序,重点讲解了基准元素(pivot)的选择和数组元素的交换过程。





