js冒泡实现
冒泡排序实现
冒泡排序是一种简单的排序算法,通过重复地遍历待排序的列表,比较相邻元素并交换位置,将较大的元素逐渐“冒泡”到列表的末尾。
基本实现
function bubbleSort(arr) {
const len = arr.length;
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]; // 交换位置
}
}
}
return arr;
}
优化版本
增加一个标志位来检查是否已经完成排序,减少不必要的循环。

function optimizedBubbleSort(arr) {
const len = arr.length;
let swapped;
for (let i = 0; i < len - 1; i++) {
swapped = false;
for (let j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
swapped = true;
}
}
if (!swapped) break; // 如果没有交换,提前结束
}
return arr;
}
使用示例
const array = [64, 34, 25, 12, 22, 11, 90];
console.log(bubbleSort(array)); // [11, 12, 22, 25, 34, 64, 90]
console.log(optimizedBubbleSort(array)); // [11, 12, 22, 25, 34, 64, 90]
算法复杂度
- 时间复杂度:最坏情况下为 O(n²),最好情况下(优化版本)为 O(n)
- 空间复杂度:O(1),原地排序算法






