快速排序
快排无疑是最重要,最常考的算法题,也是应该花时间琢磨的一道排序题
快排步骤 1,取数组随机一个元素,一般取中间 称为middle 2,建立两个空数组right[]left[],for循环把比middle小的数组放在right,大的放在left 3,再利用递归将right,left数组按照上面方法进行排序,再合并
const arr=[3,5,6,8,50,4,33,22]
const fn = (arr)=>{
if(arr.length<=1) return arr
let middle = arr[0]
let right=[]
let left = []
for(let i = 0;i<arr.length;i++){
if(arr[i]<middle) right.push(arr[i])
if(arr[i]>middle) left.push(arr[i])
}
return ([...fn(right),middle,...fn(left)])
}
console.log(fn(arr))