<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> 冒泡排序 </title>
<script>
// 冒泡排序 - 升序 排列 (由小到大排列)
// 一次次的找最大值,并 把它移到最后面
// toString 把数字转换为字符串
var arr = [7, 6, 5, 4, 3, 2, 1];
console.log(arr.toString()); // [7 , 6 , 5 , 4 , 3 , 2 , 1 ];
//1.外部循环 保证了 一共 将 length - 1 个数 从小到大 的 排序
for (var wai = 1; wai <= arr.length - 1; wai++) {
//2.内部循环 保证 了 最大值 被 移动到最后
for (var i = 0; i <= arr.length - 1; i++) {
//3.如果 当前元素 比后面的元素大,则交换两个元素的位置
if (arr[i] > arr[i + 1]) {
// 使用 临时变量 的方式,交换两个 元素的值 -> 交换两个变量的值
var sum = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = sum;
}
}
console.log('第' + wai + '轮交换后的结果: ' + arr.toString());
// 第1轮交换后的结果: 6,5,4,3,2,1,7
// 第2轮交换后的结果: 5,4,3,2,1,6,7
// 第3轮交换后的结果: 4,3,2,1,5,6,7
// 第4轮交换后的结果: 3,2,1,4,5,6,7
// 第5轮交换后的结果: 2,1,3,4,5,6,7
// 第6轮交换后的结果: 1,2,3,4,5,6,7
}
</script>
</head>
<body>
</body>
</html>