js实现冒泡
冒泡排序的JavaScript实现
冒泡排序是一种简单的排序算法,通过重复地遍历要排序的列表,比较相邻的元素并交换它们的位置来实现排序。以下是JavaScript中的实现方法。
基本实现
function bubbleSort(arr) {
let 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) {
let 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)。






