获取数组中间值,然后其余元素和中间值对比分成两个子集,两个子集继续同样操作,
直到子集剩余一个元素或者没有;
function quickSort(arr) {
if (arr.length<2) return arr; // 处理长度为1或者空数组
let j = Math.floor(arr.length/2);
let pivot = arr.splice(j,1)[0]; // 截取基准元素
let left = [];
let right = [];
for (let index = 0; index < arr.length; index++) {
const element = arr[index];
if (element > pivot) {
right.push(element);
} else {
left.push(element);
}
}
return quickSort(left).concat([pivot],quickSort(right));
}