标签:
(根据蓝丝雨实战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
条件不成立,退出循环
标签:
原文地址:http://www.cnblogs.com/hyfhxz/p/4866050.html