冒泡排序原理
冒泡排序是一种简单的排序算法,通过重复遍历数组,比较相邻元素并交换位置,使较大的元素逐渐"浮"到数组末尾。
特点
时间复杂度 :平均 O(n²),最优(已有序时)O(n)
空间复杂度 :O(1)(原地排序)
稳定性:稳定(相同元素相对位置不变)
javascript
// 冒泡排序
function bubbleSort(arr) {
let n = arr.length;
let swapped; // 优化标志
for (let i = 0; i < n - 1; i++) {
swapped = false;
// 每轮遍历后,最大的元素会沉到最后
for (let j = 0; j < n - 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;
}
