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