基本原理:取数组中间数为基数,小于基数的放左边,大于的放右边,左右数组递归。
quickSort(arr){
if (arr.length <= 1) { return arr}
const leftArr = []
const rightArr = []
const baseIndex = Math.floor(arr.length/2)
const baseEL = arr.splice(baseIndex,1)[0]
for (var i = 0; i < arr.length; i++) {
const a = arr[i]
if(a < baseEL){
leftArr.push(a)
}else{
rightArr.push(a)
}
}
return [...quickSort(leftArr),baseEL,...quickSort(rightArr)]
}
网友评论