前端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]
相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万3 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋3 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁3 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95273 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大3 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师3 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学3 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端