冒泡排序是什么:
数组中有n
个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置;这样一来,第一轮就可以选出一个最大的数放在最后面;那么经过n-1
(数组的 length - 1) 轮,就完成了所有数的排序。
var arr = [10,1,35,61,89,36,55];
//for (var i = 0; i < arr.length-1; i++)
for (var i = 0; i < arr.length; i++) {
// for (var j = 0; j < arr.length - 1-i; j++)
for (var j = 0; j < arr.length - 1; j++) {
if (arr[j] > arr[j + 1]) {
var num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num;
}
}
}
console.log(arr)
上述代码,内部for循环配合if循环每次可排列一个最大值。if判断谁大谁小,并交换值的位置。for遍历数组,
外部的for循环决定了内部for循环的执行次数,内部for执行一次排列一个数,需要排列7个数,则外部for循环7次
简单的优化{(其实六次已经排列好,最后一个肯定是最小的)
(内部也是一样,每次可以少排列一个已经排列好的最大值可以-i)}