var ary = [12,13,45,74,98,78,64,1,54]
function quick(ary){
//如果传递进来的数组只有一项或者是空的,我们则不再继续取中间项拆分
if(ary.length<=1){
return ary;
}
// 获取中间项的索引:把中间项的值或得到,在原有数组中删除中间项
var centerIndex = Math.floor(ary.length/2),
centerValue = ary.splice(centerIndex,1)[0]
//->splice返回的是一个数组,数组中包含了删除的那个内容
//->用剩余数组中的每一项和中间相进行比较,比中间项大的放在右边,小的放在左边
var aryLeft= [],
aryRight = [];
for(var i=0;i<ary.length;i++){
var cur = ary[i]
cur<centerValue?aryLeft.push(cur):aryRight.push(cur);
}
return quick(aryLeft).concat(centerValue,quick(aryRight))
}
console.log(quick(ary))