/**
* 冒泡排序
* 思想:当前项 和 后一项 进行对比, 如果当前项大于后者 则 调换位置
* 执行
* 1.循环数组 arr.length-1 (这里只是代表数组长度调用次数)
* 2. 嵌套二次循环 arr.length -1 -i (每次循环最大值已经放到最后位置)
* 3.判断 当前值 和 后者 如 为 true
* 4.当前值保存为变量,当前值 替换为 后者,在把后者替换为 之前保留的变量
* 5.继续循环
*/
// [10, 9, 8, 40, 70, 6, 15] length:8
// 结果 :[9, 8, 10, 40, 6, 15, 11, 70] 内层第1次 调用7次 i = 0 length:7 j:0 Clength:7
// 结果 :[8, 9, 10, 6, 15, 11, 40, 70] 内层第2次 调用6次 i = 1 length:7 j:1 Clength:6
// 结果 :[8, 9, 6, 10, 11, 15, 40, 70] 内层第3次 调用5次 i = 2 length:7 j:2 Clength:7
// 结果 :[8, 6, 9, 10, 11, 15, 40, 70] 内层第4次 调用4次 i = 3 length:7 j:3 Clength:4
// 结果 :[6, 8, 9, 10, 11, 15, 40, 70] 内层第5次 调用3次 i = 4 length:7 j:4 Clength:3
// 结果 :[6, 8, 9, 10, 11, 15, 40, 70] 内层第6次 调用2次 i = 5 length:7 j:5 Clength:2
// 结果 :[6, 8, 9, 10, 11, 15, 40, 70] 内层第7次 调用1次 i = 6 length:7 j:6 Clength:1
/**
* 比较顺序 是由小到大 想要 由大到小 把最里面的比较改变即可
*/
let arrs = [10, 9, 8, 40, 70, 6, 15, 11];
function demo(arr) {
let num = null;
// 外层循环 控制i 控制比较的轮数
for (let i = 0; i < arr.length-1; i++) {
//内循环 控制每一轮的比较次数
for (let j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num
}
}
console.log(i,arr)
// if(i=0) return false;
}
return arr
}
console.log(demo(arrs))