举例:
[ 5 , 4 , 3 , 2 ,1 ] 变化为 [ 1 , 2 , 3 , 4 , 5 ]
1.一共需要的趟数 用外层for循环
5个数据我们一个需要走4趟(比较4次)
长度就是 数组长度 减去1 ( arr.length - 1 )
2.每一趟交换的次数 用里层for循环
第一趟 交换 4次
第二趟 交换 3次
第三趟 交换 2次
第四趟 交换 1次
长度就是 数组长度 减去 次数
但是 我们次数是从 0 次开始 , 所有最终 arr.length - i -1
3.交换2个变量就好了
let arr = [ 5 , 4 , 3 , 2 ,1 ]
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 ) { // 第一个数大于第二个数才交换
let temp = arr [ j ] // 开始交换两个变量
arr [ j ] = arr [ j + 1 ]
arr [ j + 1 ] = tempt
}
}
}
console.log ( arr ) // 结果为 [ 1 , 2 , 3 , 4 , 5 ]