当前位置:首页 > JavaScript

用js实现冒泡

2026-02-03 04:11:35JavaScript

实现冒泡排序的JavaScript代码

冒泡排序是一种简单的排序算法,通过重复遍历列表,比较相邻元素并交换顺序错误的元素,最终将列表排序。

function bubbleSort(arr) {
  let 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]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
}

代码说明

外层循环控制遍历轮数,内层循环控制每轮比较次数。每轮遍历后,最大的元素会"冒泡"到数组末尾。

用js实现冒泡

数组长度len用于确定循环次数,每次外层循环后,内层循环比较次数减少i次,因为末尾i个元素已排序完成。

用js实现冒泡

使用ES6的解构赋值语法交换元素位置,简洁高效。当arr[j]大于arr[j+1]时执行交换操作。

优化版本

可以添加标志位提前终止排序,当某轮遍历没有发生交换时说明数组已有序。

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

复杂度分析

时间复杂度:最坏情况O(n²),最好情况O(n)(优化版本) 空间复杂度:O(1),原地排序算法

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https:/…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…