将小于基准的元素,移到基准的左边,大于基准的元素,移到基准的右边,对基准左右两边的子集,重复进行操作,直到子集中只剩下一个元素为止。
function quickSort(arr){
if(arr.lengh <= 1) {return arr;}
var index = Math.floor(arr.length/2);
var pilot = arr.splice(index, 1)[0];
var left = [];
var right = [];
for(var i=0; i < arr.length; i++){
if(arr[i] < pilot){
left.push(arr[i])
} else {
right.push(arr[i])
}
}
return quickSort(left).concat([pilot], quickSort(right))
}
http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html