冒泡排序原理
冒泡排序是一种简单的排序算法,通过重复遍历数组,比较相邻元素并交换位置,使较大的元素逐渐“浮”到数组末尾。
特点
时间复杂度:平均 O(n²),最优(已有序时)O(n)
空间复杂度:O(1)(原地排序)
稳定性:稳定(相同元素相对位置不变)
// 冒泡排序
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;
}