# 冒泡排序
- 时间复杂度(平均):
O(n^2)
- 时间复杂度(最坏):
O(n^2)
- 时间复杂度(最好):
O(n)
- 空间复杂度:
O(1)
- 稳定
# 算法
第一次执行(i===0
)两两比较前arr.length
个元素,将比较大的元素移到第二个位置,第一次完成内循环后保证最后一个元素是最大值
第二次执行(i===1
)内循环时,只需两两比较前arr.length-1
个元素,完成后最大元素在倒数第二个位置
之后同理,进行比较。。。
function bubbleSort(arr) {
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]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
选择排序 →