冒泡排序作为一种基础排序算法,其核心思想是:反复比较相邻元素,将较大(或较小)的元素逐步交换至数组末尾,直至数组有序。

以下是使用 JavaScript 实现的冒泡排序算法代码示例:

function bubbleSort(arr) {
  const len = arr.length;
  for (let i = 0; i < len - 1; i++) {
    for (let j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        // 交换 arr[j]  arr[j + 1]
        const temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

// 示例用法
const unsortedArray = [5, 2, 4, 6, 1, 3];
const sortedArray = bubbleSort(unsortedArray);
console.log(sortedArray); // 输出: [1, 2, 3, 4, 5, 6]

代码解析:

  1. 外层循环 i 控制排序趟数,每一趟都会将当前最大(或最小)的元素放置到数组末尾。
  2. 内层循环 j 负责比较相邻元素,并根据排序规则进行交换。
  3. len - 1 - i 优化: 由于每趟排序后,数组末尾的 i 个元素已经有序,因此内层循环无需遍历已排序的部分。

需要注意的是,冒泡排序的时间复杂度为 O(n^2),在处理大规模数据时效率较低,实际应用中通常会选择更高效的排序算法。