首先冒泡排序的图解如下:
冒泡排序的原理:
-
相邻的两个单位,比较存储的数据。
-
如果第一个单元的数据较大,就将两个相邻单元,交换存储数据。
冒泡排序的过程:
-
从起始单元开始比较,第一次循环,会选择出一个最大值,放在数组所有单元的最后。
-
,每次循环,都会比较出一个本次循环的最大值,放在当前参与比较单元的最后之前已经比较选出的单元,不会参与下一次比较。
代码如下:
// 外层循环,循环执行排序操作,循环次数是数组单元个数-1
for(var j = 0 ; j <= (arr.length-1) -1 ; j++){
//内层循环,每次循环比较一个最大值
for (var i = 0; i <= (arr.length-1) -1 - j ; i++) {
if (arr[i] > arr[i + 1]) {
//交换存储的数据
var middle = 0;
middle = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = middle;
}
}
}
//输出
console.log(arr);