📜  算法| BubbleSort |问题1(1)

📅  最后修改于: 2023-12-03 15:41:09.259000             🧑  作者: Mango

算法介绍

BubbleSort 冒泡排序

冒泡排序是一种简单的排序算法,重复遍历待排序的数组,一次比较两个元素,如果它们的顺序错误就交换位置,直到没有元素再需要交换位置为止。冒泡排序每次扫描都会将未排序的最大值或最小值移动到已排序的末尾。

算法实现

以下是 BubbleSort 冒泡排序的 JavaScript 实现代码:

function bubbleSort(arr) {
  const len = arr.length;

  for (let i = 0; i < len; i++) {
    // 每轮比较都将最大值(或最小值)交换到末尾
    for (let j = 0; j < len - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }

  return arr;
}
算法分析

冒泡排序是一种时间复杂度为 O(n^2) 的排序算法,虽然其思路简单,但对于大规模数据排序时,其效率较低,不如快速排序、归并排序等算法。在较小规模数据排序的场景下,冒泡排序仍然是一种可行的算法选择。

问题1

冒泡排序的时间复杂度是多少?

答:冒泡排序的时间复杂度是 O(n^2)。