js冒泡实现
冒泡排序的基本原理
冒泡排序是一种简单的排序算法,通过重复地遍历待排序的列表,比较相邻的元素并交换它们的位置,将较大的元素逐渐“冒泡”到列表的末端。

实现冒泡排序的代码
以下是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;
}
时间复杂度分析
冒泡排序的平均和最坏时间复杂度均为O(n²),最优时间复杂度为O(n)(当数组已经有序时)。空间复杂度为O(1),属于原地排序算法。






