冒泡算法的js写法

冒泡算法
冒泡算法是一种比较简单好理解的算法,但是数据处理起来比较繁复,下面我们来整理一下吧。
先上代码为敬!

<script>
        var array=[10,50,2,6,20];
        var temp=array[0];
        for(var i=0;i<=array.length-1;i++){
            for(var j=0;j<=array.length-1-i;j++){
                if(array[j]>array[j+1]){
                    var temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
        }
        console.log(array);
    </script>

可以这样想:首先对于array=[10,50,2,6,20]数组里的10,50,2,6,20这几个数字,要对他们进行排序的话,我们怎么第一想法可能是找出最大的,排最后面;稍微第二大的,拍第二后面;但是对于计算机来说,他们可不知道哪个最大,他们只能是一个个遍历循环,进行比较才可以得出最大项。
大体算法步骤理解:
1、首先,第一次比较时,取数组中第一个数10与其他数进行比较,如果小于10,则交换位置,小的在前;如果大于10,不做改变,直到遍历完整个数组,总体一共会遍历array.length-1次(和除去自身之外的数字相比) 此时遍历完后,数组变为[2,50,6,10,20]
2、然后进行第二次比较,取数组第二个数50,又发生一次遍历。一共遍历array.length-1-1次(和除去自身以及上一次比较过的数之外的数字相比)
3、继续比较,直到比较array.length-1次
可以这样理解:

54321
第一次比较43215比较length-1-0次
第二次比较32145比较length-1-1次
第三次比较21345比较length-1-2次
第四次比较12345比较length-1-3次

可以想象是二维的x y轴,x轴(横向)方向是数组内部循环遍历,y轴(纵向)用来计次数

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值