冒泡排序
定义:
冒泡排序:是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或从大到小)。
例如:
数组[5,4,3,2,1]中的元素按照从小到大的顺序排列,输出:[1,2,3,4,5]
原理:
数组[5,4,3,2,1]中5于4进行比较5>4所以5占据4的索引位置,之后在由5于3进行比较在进行位置的调换,依次类推等4,3,2,1,之后完成数组由到大的排列。
中间数据:
第一次比较4,3,2,1,5
第二次比较3,2,1,4,5
第三次比较2,1,3,4,5
第四次比较1,2,3,4,5
提示:
乱序也是一样的方法,依次进行比较。
代码演示
var arr = [5,4,3,2,1];
for (var i = 0 ;i<arr.length-1;i++){
for(var j = 0;j<=arr.length-i-1;j++){
//里层交换的次数
//内部交换两个变量的值 前一个和后一个数组元素相比较
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j]= arr[j+1];
arr[j+1]=temp;
}
}
}
console.log(arr);
注意:
外层循环的次数是为数组数量-1
里层的循环的此时是数组数量-i-1(i为数组是第几次进行了内层循环)