冒泡算法

(根据蓝丝雨实战TC的视频教程总结,学习冒泡算法)

var arr=[28,15,10,30];//定义一个数组
for (var i=0;i<4;i++ ){
    for (var j= i+1;j<4;j++){
        if(arr[i]>arr[j]){
            var m=arr[i];
            arr[i]=arr[j];
            arr[j]=m;
        }
    }
document.write("第"+i+"个是:"+arr[i]+"<br/>");
}

运行结果:

第0个是:10
第1个是:15
第2个是:28
第3个是:30

 

 

原理:

28,15,10,30

 

1、 第一次外层循环

i=0

进入内层循环

j=1

28>15 条件成立,开始交换数据,换完后的结果是

15 28 10 30

此时代码所选还是在内循环

j++之后,j=2,i=0

15>10 条件成立,开始交换数据,换完后的结果是

10 28 15 30

此时代码执行还是在内循环

j++之后,j=3,i=0

10>30条件不成立,则不进行交换数据

j++之后,j=4,内循环结束

 

 第一次外循环与内层循环后

10 28 15 30

能过第一次外循环得到其最小值

 

2、 第二次外层循环

i=1

进入内层循环

j=2

28>15条件成立,开始交换数据,换完后的结果是

10 15 28 30

此时代码执行还是在内循环

j++之后,j=3,i=1

15>30条件不成立,则不进行交换数据

j++之后,j=4内循环结束

 

第一次外循环与内层循环后

10 15 28 30

能过第一次外循环得到其最小值,次值

 

3、 第三次外层循环

i=2

进入内层循环

j=3

28>30条件不成立,则不进行交换数据

j++之后,j=4内循环结束

 

4、第四次外层循环

i=3

进入内层循环

j=4

内循环结束

 

5、第五次外层循环

i=4

条件不成立,退出循环

转载于:https://www.cnblogs.com/hyfhxz/p/4866050.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值