冒泡排序
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
//冒泡排序 每一次比较就会出现一个最大值
var arr = [8, 2, 1, 5];
//第一轮:取8 8和2比 如果前面的比后面的大,交换位置 [2,8,1,5]
// 8和1比 如果前面的比后面的大, 交换位置 [2,1,8,5]
// 8和5比 如果前面的比后面的大, 交换位置 [2,1,5,8]
//通过第一轮比较,得出一个最大值 8 arr.length-1-i---> 4-1-0 --> 3
//[2,1,5,8]
//第二轮:取2 2和1比 如果前面的比后面的大,交换位置 [1,2,5,8]
// 2和5比 如果前面不比后面的大,保持位置不变 [1,2,5,8]
//通过第二轮比较,又得出一个最大值 5 5,8 arr.length-1-i---> 4-1-1 --> 2
//[1,2,5,8]
//第三轮:取1 1和2比 如果前面不比后面的大,保持位置不变 [1,2,5,8]
//通过第三轮比较,又得出一个最大值 2 2,5,8 arr.length-1-i---> 4-1-2 --> 1
//还需要 比较第四轮吗? 不需要
for (var i = 0; i < arr.length - 1; i++) { //比较的轮数或者是轮数
// console.log(arr);// 8 2 1
//var itme = arr[i];
for (var j = 0; j < arr.length - 1 - i; j++) { //8和2 1 5比较
//var current = arr[j];
if (arr[j] > arr[j + 1]) {
var temp = arr[j];//交换位置的方法就是拿一个空的盒子然后三者互相赋值
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);