实现思路
1.找到中间位置midValue
2.遍历数组,小于midValue放在left,大于midValue放在right
3.继续递归,最后concat拼接,返回
代码实现
function quickSort(arr) {
const length = arr.length
if(!length) return arr
const midIndex = Math.floor(length/2)
const midValue = arr.splice(midIndex, 1)
const left = []
const right = []
for (let i = 0; i < arr.length; i++) {
if(arr[i] < midValue){
left.push(arr[i])
}
if(arr[i]>midValue) {
right.push(arr[i])
}
}
return quickSort(left).concat(midValue, quickSort(right))
}
测试
console.log(quickSort([3,8,2,6,5,9,4,7,1]))