您的位置:首页 > 其它

快速排序原理

2015-08-26 10:36 501 查看
var arr=[5,2,4,7,6,3,1,0,8];

function quickSort(arr){
if(arr.length<=1){
return arr;
}
var baseInex=Math.floor(arr.length/2);
var base=arr.splice(baseInex,1);
var left=[];
var right=[];
for(var i=0;i<arr.length;i++){

if(arr[i]<base){
left.push(arr[i])
}else{
right.push(arr[i])
}
}

return quickSort(left).concat([base],quickSort(right));}

alert(quickSort(arr));


递归过程:

“+”看作concat()

quickSort([1,2,3,4,5])+[6]+quickSort([7,8,9]);
quickSort([1,2])+[3]+quickSort([4,5])+[6]+quickSort([7])+[8]+quickSort([9]);
quickSort([])+[1]+quickSort([2])+[3]+quickSort([])+[4]+quickSort([5])+[6]+[7]+[8]+[9]
[]+[1]+[2]+[3]+[]+4+[5]+[6]+[7]+[8]+[9]

原文地址:http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: