// 快速排序
const _quickSort = array => {
if(array.length < 2) {
// 结束递归的条件
return array
}
// 拿到数组中间数字分割数组
const middleIndex = Math.floor(array.length / 2);
// middle为基数,将其从数组中删除出去
let middle = array.splice(middleIndex, 1)[0];
// 分为左右两个数组
let leftArr = [];
let rightArr = [];
// 循环整个数组跟基数对比
for(let i = 0; i < array.length; i++) {
if( array[i] > middle ) {
rightArr.push(array[i])
} else {
leftArr.push(array[i])
}
}
// 递归以上操作
return _quickSort(leftArr).concat([middle], _quickSort(rightArr))
}
js写快速排序
最新推荐文章于 2024-09-11 23:16:45 发布