比较次数O(N2) 交换次数也是O(N2)

补充

补充:冒泡排序(Bubble Sort)通过多轮"相邻元素两两比较、顺序错误就交换"实现排序,每一轮会把当前未排序部分的最大元素"冒泡"到末端。n-1 轮后完成排序,比较与交换均为 O(n²),是稳定排序,原地操作。优化点:若一轮中没有发生任何交换,可提前结束。

function bubbleSort(arr) {
  const n = arr.length;
  for (let i = 0; i < n - 1; i++) {
    let 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;
}

来源整理自:我的有道云笔记