快速排序

//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);

原文地址:https://www.cnblogs.com/mywills/p/6035782.html