代码如下
var arr = [1, 3, 5, 4, 2, 82, 23, 59, 105];
console.log('未排序前:' + arr);
for (var i = 0; i < arr.length - 1; i++) { // 外层循环趟数 length - 1
/* 里层循环每一趟的交换次数
第一个元素则需要比较length - 1次,
第二个元素 需要比较 length - 2 次
第三个元素需要 length - 3次,..以此类推
n个元素需要比较 length - n;
n是不断变化的
外层循环一趟 i + 1
里层循环 arr.length - 1 - i (i是从0开始不断++)
*/
for (var j = 0; j < arr.length - 1 - i; j++) {
// 当前元素值和下一个元素值作比较
if (arr[j] > arr[j + 1]) {
// 交换位置 定义一个三方变量
var temp;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log('冒泡排序后:' + arr);
附上控制台打印输出结果:
注释 :纯属对冒泡排序的个人理解 ,如果不对之处,还请大佬们指出问题所在!