<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
// var arr = [65,97,76,13,27,49,58];
var arr = [1,2,4,3,5,6,7];
//轮数
var m = 0;
//次数
var n = 0;
//什么情况下,我们可以确定排序完毕?
// (if语句中在一次循环下如果代码被执行了,没有排序完毕。)
// (一轮for循环之后一次if语句都没有被执行,说明排序完毕了。)
//技术点:开闭原则。
//外循环控制轮数(元素个数减一)
for(var i=0;i<arr.length-1;i++){
//开闭原则中的开关(默认是开启的)
var bool = true;
//内循环控制次数(元素个数减一)
for(var j=0;j<arr.length-1-i;j++){
//注意:1.怎么比较?(相邻的两个数比较) 2.什么情况下交换位置。(前边数大)
//如果判断条件和交换元素位置呢
if(arr[j] > arr[j+1]){
//交换位置
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
//不会的同学举手。(没有排序完毕呢)
bool = false;
}
n++;
}
m++;
//内循环中的if语句没有被执行
if(bool){
break;
}
}
console.log(arr);
console.log(m);
console.log(n);
</script>
</body>
</html>