//快速排序
let arr = [3,7,23,5,2,90,23,444,55,12,23,32,22,-1,-4]
function quickSort(arr){
//1.定义基准树 比基准树小的放在左边 比基准树大的放在右边
let criterion_num = arr[0] //取数组的第一位数 作为基准树
let left_arr = [] //左边数组
let rigth_arr = [] //右边数组
//循环 不循环基准数
for (let i = 1; i < arr.length; i++) {
if(arr[i] > criterion_num){ //如果arr[i]大于基准数
rigth_arr.push(arr[i]) //将大于 基准树的数据 push 到右边数组
}else{
left_arr.push(arr[i]) //否则 将基准树的数据 push 到左边数组
}
}
//2.使用递归遍历 左右数组 判断数组的长度是否 大于等于2如果大于等于2 我们在进行遍历
if(left_arr.length >= 2) left_arr = quickSort(left_arr)
if(rigth_arr.length >= 2) rigth_arr = quickSort(rigth_arr)
//3.最后 将数组和基准树合并
return left_arr.concat(criterion_num,rigth_arr)
}
let num = quickSort(arr)
console.log(num,"快速排序");
递归实现快速排序
最新推荐文章于 2024-09-14 19:44:09 发布