快速排序
var ary = [12, 15, 14, 13, 16, 11, 13];
function numSort(arr) {
if (arr.length <= 1) { //停止
//=0的是返回[] =1的时候返回那个数组[X]
return arr;
}
//如果有小数 向下取整Math.floor()
var centerIndex = Math.floor(arr.length / 2);
//console.log(centerIndex); //索引3 并且要删除
var centerValue = arr.splice(centerIndex, 1)[0];
//console.log(centerValue); //[13]-->[0]从数组里把13取出来
var leftBox = []; //比13小的
var rightBox = []; //大等于13的
for (var i = 0; i < arr.length; i++) {
if (arr[i] < centerValue) {
leftBox.push(arr[i])
} else {
rightBox.push(arr[i])
}
}
return numSort(leftBox).concat(centerValue, numSort(rightBox));
//左右盒子继续调用numSort
//var n = leftBox.concat(centerValue, rightBox); //左中右三个盒子拼接
// console.log(rightBox);
// console.log(leftBox);
//console.log(n);
var res=numSort(ary);
console.log(res);
}