快速排序过程:
1. 在数据集之中,找一个基准点
2. 建立两个数组,分别存储左边和右边的数组
3. 利用递归进行下次比较
function quickSort(arr) {
if(arr.length <= 1) {
return arr; //如果只有一个数就直接返回
}
var middle = Math.floor(arr.length/2); // 找到中间数的索引,如果是浮点数就向下取整
var middle_value = arr.splice(middle, 1); //找到中间值
var left = [], right = [];
for (var i = 0; i < arr.length; i++) {
if(arr[i] < middle_value) {
left.push(arr[i]); //基准点左边的数->左边数组
} else {
right.push(arr[i]); //基准点右边的数->右边数组
}
}
return quickSort(left).concat([middle_value], quickSort(right))
}