首先了解什么是快速排序。
1、找到一个基准值(一般是中间位)
2、然后将数组的值与基准值比较,分为两个数组(比基准值小的,比基准值大的)
3、然后对这两个数组再排序,循环。
var arr = [1,3,4,8,2,0,9,11,5];
console.log(quickSort(arr));
function quickSort(arr){
if(arr.length <= 1) return arr;
var index = Math.floor(arr.length/2);
var key = arr.splice(index,1)[0];
var left = [], right = [];
for(var i=0;i<arr.length;i++){
arr[i]<key?left.push(arr[i]):right.push(arr[i]);
}
return quickSort(left).concat([key],quickSort(right));
}
网友评论