快速排序
快速排序是对冒泡排序的一种改进。快速排序称为分治法。
快速排序的算法描述:
先从数列中取出一个数作为基准数
分区过程,将比这个数大的全部放在它的右边,小于或等于它的数全部放到它的左边。
再对左右区间重复第二步,直到个区间只有一个数。
快速排序的流程
代码实现
function quickSort(arr=[]){
const {length} = arr
if(length<=1){
return arr
}
let pivot = arr[0]
let left = [];
let right = [];
for(let i=1;i<length;i++){
if(pivot<=arr[i]){
right.push(arr[i])
}else{
left.push(arr[i])
}
}
console.log(left,right)
let l = quickSort(left) ;//[1] [] [1,2]
let r = quickSort(right) //[3][6] [3,4,6]
return l.concat(pivot).concat(r) //[1,2,3,3,4,6]
}
let arr = quickSort([3,4,6,3,2,1])
console.log(arr)
```javascript
```