js冒泡排序
冒泡排序是一种常见的排序,使用循环进行逐一比较,完成排序,假设有一个数组let arr = [5,6,2,3,8,7,9,1,0,4];
按照从大到小排序,依次比较相邻的两个元素,就可以完成由大到小排序
代码实现如下:
let arr = [5,6,2,3,8,7,9,1,0,4];
let t;
for(let i=0;i<arr.length-1;i++){
for(let j=0;j<arr.length-i-1;j++){
if(arr[j]<arr[j+1]){
t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
}
console.log(arr);
当执行循环时,数组里相邻下标的两个数进行比较,需要执行几趟,使用外层循环控制10个数一共要走9趟,即arr.length-1
次。每一趟交换的次数使用内层循环控制,第一趟需要交换9次,第二趟需要交换8次,第三趟需要交换7次,依次递减,所以长度为arr.length-i-1
次;使用一个中间变量t
,来进行交换
交换的每一次结果如图:
引入部分ES6语法
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]){
[arr[j],arr[j+1]]=[arr[j+1],arr[j]];
}
}
}
console.log(arr);