冒泡排序
算法分析:
- 时间复杂度:
- 最坏情况(完全逆序):O(n²)
- 最好情况(已经有序):O(n)(优化后可提前终止)
- 空间复杂度:O(1)(原地排
基本实现
js
function bubbleSort(arr) {
const n = arr.length;
for (let i = 0; i < n - 1; i++) {
for (let j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换相邻元素
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
// 测试
const array = [64, 34, 25, 12, 22, 11, 90];
console.log(bubbleSort(array)); // [11, 12, 22, 25, 34, 64, 90]