js快速排序(基准数法)

2020-09-02  本文已影响0人  AnsiMono

记录一下日常学习,今天实现一下js快速排序

代码和思路如下

    let arr = [1,13,23,35,3,4,67,89,900,16];//定义数组
    function quckNum(arr){
            let numJz = arr[0];//取基准数 随便取就好了 我取第一个
            let arrLfet = [],arrRight = [];//定义2个数组 用于存放比较的值
            for (let i = 1; i < arr.length; i++) {
                if (arr[i] < numJz) {
                    arrLfet.push(arr[i]);//比基准数小的放左边数组
                }else{
                    arrRight.push(arr[i]);//比基准数大或者等于基准数的放右边数组
                }
            }
            if (arrLfet.length>=2) arrLfet = quckNum(arrLfet);//比对后的数组的个数大于等于2才有意义 然后再次对数组进行比对操作
            if (arrRight.length>=2) arrRight = quckNum(arrRight);
            return arrLfet.concat(numJz,arrRight); //合并左边数组,基准数,右边数组并返回
        }

方法写完了 运行一下 看看结果

js快速排序.png

完美

上一篇下一篇

猜你喜欢

热点阅读