冒泡排序
冒泡排序是排序的一种
主体思路:两两之间相互比较,大的往后面排,比较完毕之后最大的数就出来了,这是第一趟,然后重复这个操作就可以咯
依此类推 只需要比较数组的长度 - 1 次
逻辑推理过程:
1.核心思想(从小到大): 数组的两两之间进行比较 大的往后排 重复这个操作 就可以实现排序
2.求出一个最大数 (八个数) 需要比较几次 (7次)
3.需要比较多少轮(八个数) 最终排序完成 (7轮)
推理开始:
1. 先使用for循环求出一个最大数 重复复制这个for循环7次可以完成排序
2. 重复7次这样的for循环过于冗余,所以使用双层for循环嵌套 (注意两次的for循环不要出现重复)
3. for循环的条件写死咯,可以使用length属性替换 (< arr.length - 1) 原因就是八个数 只需要比较7次
4. 第一次的for循环循环7次,求出一个最大值,下一次的for循环的次数可以对应减少一次,因为已经求出了一个最大值咯,所以可以得到一个基本规律就是轮数的增加意味这这一轮的次数在不断减少
var arr = [6, 5, 3, 1, 8, 7, 2, 4];
var tang = 0;
var ci = 0;
for (var j = 0; j < arr.length - 1; j++) {
tang++;
for (var i = 0; i < arr.length - 1 - j; i++) {
ci++;
// console.log(i);
// 两两之间 => arr[i] arr[i + 1]
// 两两之间进行比较
if (arr[i] > arr[i + 1]) {
// 前面的大于后面的 进行交换
// 交换两个变量的值
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}