二分法排序-递归

学习递归之后,发现可以解决很多问题,之前第一次接触二分法排序的时候,觉得很复杂,现在觉得就这,就这。

分析一下, 所谓的二分法就是拆中分类

主要就是分为左右两个数组, 最后合并成一个数组

  		// 二分法排序
        let arr = [3, 4, 5, 67, 43, 32]
        let fn = (arr) => {
            if (!arr.length) {
                return 
            }
            // 取出中间值
            let val = Math.floor(arr.length / 2)
            let c = arr.splice(val, 1)
            let leftArr = []
            let rightArr = []
            arr.forEach((v) => {
                if (v > val) {
                    rightArr.push(v)
                } else {
                    leftArr.push(v)
                }
            })
            return fn(leftArr).concat(val, fn(rightArr))
        }
        console.log('fn(arr)', fn(arr));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值