冒泡算法

(根据蓝丝雨实战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

条件不成立,退出循环

posted @ 2015-10-10 10:27  火浴凤凰  阅读(240)  评论(0编辑  收藏  举报