const quick = function quick(arr){
//4.结束条件:如果传递的数组小于一项,则无需再拆了
if(arr.length<=1) return arr;
//1.取出数组中间项
let middleIndex = Math.round(arr.length/2),
middleValue=arr.splice(middleIndex,1)[0];
//2.创建左右俩个数组,用原始数组剩下的项和中间项比较,比中间项小的放在左边,大的放在右侧数组中
let arrLeft = [],
arrRight = [];
for(let i = 0;i<arr.length;i++){
let item = arr[i];
item>middleValue?arrRight.push(item):arrLeft.push(item);
}
//3.把左边的、中间项、右侧的拼接在一起即可
return quick(arrLeft).concat(middleValue,quick(arrRight));
}
let arr = [12,8,15,16,1,24];
arr = quick(arr);
console.log(arr);//[1, 8, 12, 15, 16, 24]