前端面试题:算法-冒泡排序

本文详细介绍了如何使用ES6中的解构赋值来实现冒泡排序算法,通过内外两层循环,每轮将最大值沉淀到数组末尾,最终完成数组排序。

数组排序之冒泡排序: 重写冒泡排序


   /**
     *  
     *  
     *  外层循环outer:控制比较躺数;控制条件arr.length>=2;
     *  内层循环inner:进行冒泡,每次冒泡,都将当前比较趟中的最大值,沉淀到最后:arr[outer-1];
     *  内层循环每次从arr[0],开始向后比较,每一趟排序要比较次数outer-1;
     *  如果arr[inner]>arr[inner+1];则进行交换位置;
          使用ES6中的解构赋值:
          交换位置
          [arr[inner],arr[inner+1]]=[arr[inner+1],arr[inner]]
     *  [4,3,2,1]
     * */
    Array.prototype.bubbleSort=function(){
        let arr=this,len=arr.length;
        for(let outer=len;outer>=2;outer--){
            
            for(let inner=0;inner<outer-1;inner++){
                  
                    if(arr[inner]>arr[inner+1]){
                        [arr[inner+1],arr[inner]]=[arr[inner],arr[inner+1]]
                    }
            }
        }

        return arr;
    }
复制代码

转载于:https://juejin.im/post/5caf0273f265da03b0514c42

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值