前端javascript中的排序算法之冒泡排序

冒泡排序(Bubble Sort)基本思想
经过多次迭代,通过相邻元素之间的比较与交换,使值较小的元素逐步从后面移到前面,值较大的元素从前面移到后面。
大数据往上冒泡,小数据往下沉,也就是小数据在左边,大数据在右边
最简单也是性能最差的排序算法
入门级排序算法

代码实现

js 复制代码
//不优化直接写
function bubbleSort(data) {
  console.time("test");
  for (let i = 0; i < data.length; i++) {
    for (let j = 0; j < data.length - i - 1; j++) {
      if (data[j] > data[j + 1]) {
        let temp = data[j];
        data[j] = data[j + 1];
        data[j + 1] = temp;
      }
    }
  }
  console.timeEnd("test");
  return data;
}
//优化
function bubbleSort1(data) {
  console.time("test1");
  for (let i = 0; i < data.length; i++) {
    //
    for (let j = 0; j < data.length - 1 - i; j++) {
      if (data[j] > data[j + 1]) {
        let temp = data[j];
        data[j] = data[j + 1];
        data[j + 1] = temp;
      }
    }
  }
  console.timeEnd("test1");
  return data;
  
}

复杂度

  • 时间复杂度O(1),只用到了几个辅助的常量,i,j
  • 空间复杂度O(n²)

代码测试

js 复制代码
    const ret = bubbleSort([10,20,4,9,100,300,123]);
    console.log("🚀 ~ ret:", ret) // [4, 9, 10, 20, 100, 123, 300]
    const ret2 = bubbleSort1([10,20,4,9,100,300,123]);
    console.log("🚀 ~ ret:", ret2) // [4, 9, 10, 20, 100, 123, 300]
相关推荐
不爱吃糖的程序媛7 小时前
Electron 智能文件分析器开发实战适配鸿蒙
前端·javascript·electron
Doro再努力7 小时前
2025_11_14洛谷【入门1】数据结构刷题小结
前端·数据结构·算法
IT_陈寒7 小时前
SpringBoot 3.2新特性实战:这5个隐藏技巧让你的应用性能飙升50%
前端·人工智能·后端
eason_fan8 小时前
Monorepo性能噩梦:一行配置解决VSCode卡顿与TS类型崩溃
前端·typescript·visual studio code
天天进步20158 小时前
Webpack到Vite:构建工具迁移实战经验总结
前端·webpack·node.js
0***148 小时前
免费的WebAssembly模块打包,Webpack配置
前端·webpack·wasm
小胖学前端8 小时前
解决 uniapp H5 与原生应用通信的坑:一个经过实战验证的解决方案
前端·uni-app
LaoZhangAI8 小时前
Gemini 2.5 Flash Image API尺寸设置完整指南:10种宽高比详解
前端·后端
kangyouwei8 小时前
鸿蒙开发:19-本地开发配置bash环境执行hvigorw命令
前端·harmonyos
Achieve前端实验室8 小时前
JavaScript 原型/原型链
前端·javascript