JavaScript实现快速排序
以下是JavaScript实现快速排序的完整源码:
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
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).concat(pivot, quickSort(right));
}
const arr = [3, 0, 2, 5, -1, 4, 1];
console.log(quickSort(arr));
首先判断数组长度是否小于等于1,如果是则直接返回原数组。如果不是,则选取数组的第一个元素作为基准值(pivot),然后将数组中小于基准值的元素放入左侧数组(left),大于等于基准值的元素放入右侧数组(right),再递归地对左右两个数组进行快速排序,最后将排序好的左数组、基准值和右数组合并成一个新的数组返回。
例如,对于数组[3, 0, 2, 5, -1, 4, 1],选择基准值3,