算法—冒泡排序—js(教学示例、小数据)

冒泡排序原理

冒泡排序是一种简单的排序算法,通过重复遍历数组,比较相邻元素并交换位置,使较大的元素逐渐"浮"到数组末尾。

特点
时间复杂度 :平均 O(n²),最优(已有序时)O(n)
空间复杂度 :O(1)(原地排序)
稳定性:稳定(相同元素相对位置不变)

javascript 复制代码
// 冒泡排序
function bubbleSort(arr) {
  let n = arr.length;
  let swapped; // 优化标志

  for (let i = 0; i < n - 1; i++) {
    swapped = false;
    // 每轮遍历后,最大的元素会沉到最后
    for (let j = 0; j < n - 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;
}
相关推荐
CHQIUU2 分钟前
PDF.js 生态中如何处理“添加注释\添加批注”以及 annotations.contents 属性
开发语言·javascript·pdf
寒也7 分钟前
识别法院PDF文件特定字段并插入数据库【正则表达式+本地化部署】
java·数据库·正则表达式·eclipse·pdf·达梦·ruoyi
想成为配环境大佬7 分钟前
LeetCode 打家劫舍+删除并获得点数
算法·leetcode·动态规划
冴羽8 分钟前
SvelteKit 最新中文文档教程(22)—— 最佳实践之无障碍与 SEO
前端·javascript·svelte
中国lanwp17 分钟前
Spring Boot 版本与对应 JDK 版本兼容性
java·开发语言·spring boot
Chandler2417 分钟前
LeetCode:DFS综合练习
算法·leetcode·深度优先
ohMyGod_12320 分钟前
Vue如何实现样式隔离
前端·javascript·vue.js
懒虫虫~21 分钟前
Spring源码中关于抽象方法且是个空实现这样设计的思考
java·后端·spring
码银22 分钟前
【Java】接口interface学习
java·开发语言·学习
Abadbeginning33 分钟前
vue3后台管理框架geeker admin 横向布局(了解)
前端·javascript·vue.js