//5.快速排序 基数,随便找一个数组里面的数,一般情况去数组中间的数字,(这个基数决定了快速排序算法的优劣)
var arr = [12,2,34,4564,234,23,334,125,65];
//快速排序的函数
function quickSore(oldArray){
//出口
if (oldArray.length <= 1) {
return oldArray;
}
//取出一个基数
//基数的下标
var privosIndex = Math.floor(oldArray.length / 2);
//这个基数需要从这个数组里面剔除出来
var privos = oldArray.splice(privosIndex,1)[0];
var left = [];
var right = [];
for (var i=0;i<oldArray.length;i++) {
if (oldArray[i] < privos) {
left.push(oldArray[i]);
}else{
right.push(oldArray[i]);
}
}
return quickSore(left).concat(privos,quickSore(right));
}
var result = quickSore(arr);
console.log(result);