当前位置: 首页 > ds >正文

重温经典算法——冒泡排序


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

在这里插入图片描述

基本原理

冒泡排序是一种基于交换的简单排序算法,通过重复遍历待排序序列,依次比较相邻元素的值,若顺序错误则交换它们,直到整个序列有序。冒泡算法核心思想是将较大的元素逐渐“浮”到序列末尾。时间复杂度为平均和最差情况 O(n²),最好情况(已有序时)为 O(n),空间复杂度为 O(1),属于原地排序且稳定,但由于效率较低,通常仅用于教学或小规模数据场景。

代码实现

public class BubbleSort {public static void bubbleSort(int[] arr) {int n = arr.length;boolean swapped; // 优化标志位,判断本轮是否发生交换for (int i = 0; i < n - 1; i++) { // 外层循环控制排序轮数swapped = false;for (int j = 0; j < n - 1 - i; j++) { // 内层循环处理相邻元素比较if (arr[j] > arr[j + 1]) { // 若前一个元素更大,则交换int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;swapped = true; // 标记本轮发生交换}}if (!swapped) break; // 若本轮无交换,说明已有序,提前终止}}public static void main(String[] args) {int[] arr = {5, 3, 8, 6, 2, 7, 1, 4};bubbleSort(arr);System.out.println("Sorted array: " + Arrays.toString(arr));// 输出:Sorted array: [1, 2, 3, 4, 5, 6, 7, 8]}
}
http://www.xdnf.cn/news/10071.html

相关文章:

  • 国产分子动力学引擎——GPUMD本地部署教程:专为 NVIDIA GPU 加速设计
  • leetcode:372. 超级次方(python3解法,数学相关算法题)
  • litctf2025复现
  • [mcu]系统频率
  • 【GESP真题解析】第 16 集 GESP 二级 2024 年 9 月编程题 1:数位之和
  • LangChain 和 LangChain-ChatChat 的区别
  • 【题解-洛谷】B4295 [蓝桥杯青少年组国赛 2022] 报数游戏
  • Java 中的接口(Interface)与抽象类(Abstract Class)详
  • MCP(模型上下文协议)深度解析:一篇文章彻底理解
  • magic-api配置Git插件教程
  • 重工业专属:Profibus转Profinet网关在矿石粉料输送线中的定制化方案
  • 国产 BIM 软件万翼斗拱的技术突破与现实差距 —— 在创新与迭代中寻找破局之路
  • fiddler怎么抓苹果手机的包
  • 微小店推客系统开发:技术赋能流量裂变,SEO驱动精准获客
  • 14.Java反射机制:解锁动态编程的魔法之门
  • cadence PCB 精度设置成小数点4位方法
  • 如何给老旧 iOS App 添加安全保护?用 Ipa Guard 对 IPA 文件混淆加固实录
  • 计算机毕业设计酒店后台管理系统(vue+springboot+mysql+开题+论文)
  • 【按升序输出三个数】2022-2-2
  • Linux的SHELL脚本中的常用命令
  • JMeter 是什么
  • LoadRunner 是什么
  • 捌拾陆- 海森堡不确定性原理
  • lwip_setsockopt设置地址复用出错(lwip默认不打开,lwip_bindu也会提示端口被占用)
  • 怎么选择合适的高防IP
  • DeepSeek R1-0528 新开源推理模型(免费且快速)
  • git 本地合并怎么撤回
  • 2025.5.26【ZR NOI模拟赛 T2】草莓函数 题解(性质,二分图最大权匹配)
  • Langchain4j AIService (2)
  • 读取STM32单片机升级写入Flash的.bin文件方法