用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;
}
代码说明
外层循环控制遍历轮数,内层循环控制每轮比较次数。每轮遍历后,最大的元素会"冒泡"到数组末尾。

数组长度len用于确定循环次数,每次外层循环后,内层循环比较次数减少i次,因为末尾i个元素已排序完成。

使用ES6的解构赋值语法交换元素位置,简洁高效。当arr[j]大于arr[j+1]时执行交换操作。
优化版本
可以添加标志位提前终止排序,当某轮遍历没有发生交换时说明数组已有序。
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),原地排序算法






