上次面试有个笔试题让手写一个数组快速排序,当时没反应过来,后来回去了解了以下,才知道了。现在发出来记录一下
function quickSort(arr){
if (arr.length<=1){
return arr;
}else{
let leftArr=[],rightArr=[];
const num=arr[0];//先取出一个基数,拿来做对比
for(let i=1;i<arr.length;i++){
if(arr[i]<=num){
leftArr.push(arr[i]);//
}else{
rightArr.push(arr[i]);
}
}
return quickSort(leftArr).concat([num],quickSort(rightArr));
}
}
const arr1=[2,6,9,4,3,8,1];
const arr2=quickSort(arr1);
console.log(arr2);//[1,2,3,4,6,8,9]