Skip to content

冒泡排序

算法分析:

  • 时间复杂度
    • 最坏情况(完全逆序):O(n²)
    • 最好情况(已经有序):O(n)(优化后可提前终止)
  • 空间复杂度:O(1)(原地排

基本实现

js
function bubbleSort(arr) {
    const n = arr.length;
    for (let i = 0; i < n - 1; i++) {
        for (let j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                // 交换相邻元素
                [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
            }
        }
    }
    return arr;
}

// 测试
const array = [64, 34, 25, 12, 22, 11, 90];
console.log(bubbleSort(array)); // [11, 12, 22, 25, 34, 64, 90]