var quickSort = function (arr) {
// 当数组的长度小于等于1时 返回(退出递归)
if (arr.length <= 1) { return arr; }
// 选取中间值作为基准值
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1); // 从数组中去掉基准值,因为遍历的时候是不需要比较基准值本身的
// 创建两个空数组分别存放小于基准值的数组和大于基准值的数组
var left = [];
var right = [];
// 遍历数组,将小于基准值的数组元素push到left数组中,大于基准值的数组push到right数组中
for (var i = 0; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
// 递归重复上述步骤
return quickSort(left).concat(pivot, quickSort(right));
};
a = [1, 78, 98, 4564, 56, 789, 2234, 6, 8, 435, 878, 98879665, 534556, 5, 23432, 76867, 87865]
console.log(quickSort(a));
输出的结果为: