算法—冒泡排序—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;
}
相关推荐
workflower33 分钟前
将图片中的图形转换为可编辑的 PPT 图形
java·开发语言·tomcat·powerpoint·个人开发·结对编程
未知陨落43 分钟前
LeetCode:81.爬楼梯
算法·leetcode
SHtop111 小时前
排序算法(golang实现)
算法·golang·排序算法
卡戎-caryon1 小时前
【Java SE】06. 数组
java·开发语言
想躺平的咸鱼干1 小时前
Spring AI Alibaba
java·人工智能·spring
Rain_is_bad1 小时前
初识c语言————数学库函数
c语言·开发语言·算法
老华带你飞2 小时前
学生信息管理系统|基于Springboot的学生信息管理系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·学生信息管理系统
聪明的笨猪猪2 小时前
Java SE “泛型 + 注解 + 反射”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
磨十三2 小时前
C++ 类型转换全面解析:从 C 风格到 C++ 风格
java·c语言·c++
Zzzzmo_2 小时前
Java数据结构:ArrayList与顺序表2
java·数据结构