递归实现快速排序

//快速排序
            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,"快速排序");

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值