当前位置:首页 > JavaScript

js实现冒泡算法

2026-03-15 18:13:05JavaScript

js实现冒泡算法

js实现冒泡算法

冒泡排序算法原理

冒泡排序是一种简单的排序算法,通过重复遍历待排序的列表,比较相邻元素并交换位置,使得较大的元素逐渐“冒泡”到列表的末尾。每次遍历都会将当前未排序部分的最大元素移动到正确位置。

JavaScript实现代码

function bubbleSort(arr) {
  const len = arr.length;
  for (let i = 0; i < len - 1; i++) {
    // 标志位,用于优化
    let swapped = false;
    for (let j = 0; j < len - 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;
}

代码说明

  • 外层循环控制遍历的轮数,共需进行n-1轮比较(n为数组长度)。
  • 内层循环进行相邻元素的比较和交换,每轮结束后,最大的元素会移动到数组末尾。
  • swapped标志位用于优化算法,当某一轮没有发生交换时,说明数组已有序,可提前终止排序。

时间复杂度分析

  • 最坏情况下(逆序数组),时间复杂度为$O(n^2)$。
  • 最好情况下(已排序数组),优化后的时间复杂度为$O(n)$。
  • 平均时间复杂度为$O(n^2)$。

使用示例

const unsortedArray = [64, 34, 25, 12, 22, 11, 90];
console.log(bubbleSort(unsortedArray)); 
// 输出: [11, 12, 22, 25, 34, 64, 90]

标签: 算法js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…