一、冒泡排序
1.原理
从第一个元素开始遍历数组,每相邻的两个元素比较大小,若前一个元素大于后一个元素,则两个位置交换数据。
2.优化
- 单次循环中,最后一个单元参与比较,不参与循环
- 之前比较出的最大值,不再参与之后的比较
- n个单元,只要循环比较n-1次
3.代码
var arr = [5,4,3,2,1];
//通过for循环实现排序,需要多次循环
//通过循环,生成所有的索引下标
for(var j = 0; j <= arr.length - 1 - 1 ; j++){ //循环(arr.length - 1)次
for(var i = 0; i < arr.length - 1 - j; i++){
//第一次循环遍历所有单元,第二次遍历(arr.length-1)个单元,第三次遍历(arr.length-2)个单元
//交换存储数据,需要中间变量
if(arr[i] > arr[i + 1]){
var middel = 0;
middle = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = middle;
}
}
}