js快速排序

//基数,随便选一个数组里面的数.一般情况下取素组中间的数字(这个基数决定了快速排序算法的优劣)

var arr = [43,2,8,3,5,12,85,9,23];

//快速排序的函数

function quickSort(Array1){

if(Array1.length <= 1){

return Array1;

}

//取出一个基数

//基数的下标

var privosIndex = Math.floor(Array1.length / 2);

//这个基数需要从数组里面剔除出来,再获取到

var privos = Array1.splice(privosIndex,1)[0];

var left = [];

var right = [];

for(var i = 0;i < Array1.length;i++){

if(Array1[i] < privos){

left.push(Array1[i]);

}else{

right.push(Array1[i]);

}

}

return quickSort(left).concat(privos,quickSort(right));

 

}

var s = quickSort(arr);

console.log(s)

posted @ 2016-11-01 15:02  林子lxl  阅读(174)  评论(0编辑  收藏  举报