js双循环 冒泡排序 详解
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<script type="text/javascript">
var num = [5, 12, 6, 16, 3, 15, 34, 19];// 一个数组
var za = "";// 声明一个空变量
for (var i = 0; i < num.length; i++) {// 第一层循环
for (var j = i; j < num.length; j++) { // 第二层循环
if (num[i] > num[j]) {// 第一层循环走一步 内层循环走一圈;这里把第一层的第一个值等于0 给num 等于说num拿到第一个值等于5 内层走一圈(j 从下标0 走到7 取值从0取到下标7) 5和数组内所有的值作比较
za = num[i]; // za这个变量是做中转的。当i=0的时候,j=0, (num[i] > num[j])为false。不执行。j++ ,j < num.length 为true;J一直+到4 值等于3的时候 进入if条件执行语句:把i=0时 取到的是5这个值 给空变量,
num[i] = num[j];// 把数组中的3赋值给了num[i] , 等于说这时候 i等于0 下标是第一个 取到的值是5 5在数组中的这个位置 被3修改了。这时候3已经排在数组的第一个位置了
num[j] = za;// j下标这时为4 他们就交换了位置; 然后 外层循环i=1 i取到的值是12 ,内层循环j下标拿到的第一个是12本身 第一个不进入if条件 然后符合条件再执行交换位置的操作,直到把最大的一个值交换到最后的位置 循环条件为false停止
//比较大小更换前一个值在数组中的位置
}
}
}
console.log(num)
</script>
</head>
<body>
</body>
</html>