啥是快排這里就不講了,主要還是把原來c++學的東西抓緊轉化過來
快排運用的是分而治之的思想,確定一個中值,把大的放右邊,小的放左邊,然后再左右分別對左右的左右(霧)進行處理
需要注意的一點是,這玩意遠沒有sort函數跑的快
function quickSort(arr){
if(arr.length <= 1){
return arr;
}
let l = [], r = [];
let mid = Math.round(arr.length / 2);
for(let i = 0; i < arr.length; i++){
if(i == mid){
continue;
}else if(arr[mid] >= arr[i]){
l.push(arr[i]);
}else if(arr[mid] < arr[i]){
r.push(arr[i])
}
}
return quickSort(l).concat(arr[mid],quickSort(r));
}
console.log(quickSort([8,3,2,5,4,1]));//[1, 2, 3, 4, 5, 8]