冒泡排序
- 概念
每一次遍历都会比较相邻的两个值, 根据设置的条件进行对位置对调。
- 实现
- 设置两个for循环
- 外循环for 需要 n 个数据 n 次冒泡
- 内循环for 冒泡的比较次数,在这层循环对比两个相邻的值,当满足条件时通过一个临时变量存值,用于替换两个值的位置。
- 代码运行过程
- 第一次遍历 [2,1,5,4,6,0]
- 第二次遍历 [2,5,4,6,1,0]
- 第三次遍历 [5,4,6,2,1,0]
- 第四次遍历 [5,6,4,2,1,0]
- 第五次遍历 [6,5,4,2,1,0]
- 优化
内循环
len-i
目的就是避免不必要的计算,因为外层每循环一次就会将符合条件的值进行位置替换,因此每次都减少一次内循环。
let arr = [1,2,0,5,4,6]
let item = ''
for (let i = 0; i < arr.length-1; i++) {
for (let j = 0; j<arr.length-i; j++) {
if (arr[j] < arr[j+1]) {
item = arr[j]
arr[j] = arr[j+1]
arr[j+1] = item
}
}
}
console.log(arr)