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

java的冒泡排序算法

冒泡排序是一种简单的排序算法,通过重复遍历待排序序列,比较相邻元素并在必要时交换位置,最终实现排序。以下是Java实现的详细说明:

核心原理

  • 比较相邻元素‌:从序列第一个元素开始,逐对比较相邻元素的大小。
  • 交换条件‌:若前一个元素大于后一个元素(升序排序),则交换两者位置。
  • 重复迭代‌:每轮排序将最大元素“冒泡”到序列末尾,后续迭代逐步减少已排序的元素。

代码实现

public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;

}
System.out.println("第" + (i + 1) + "趟:" + Arrays.toString(arr));
}
}

时间复杂度

  • 最佳情况‌:O(n)(数组已排序)
  • 平均情况/最坏情况‌:O(n²)(数组完全逆序)
http://www.xdnf.cn/news/16780.html

相关文章:

  • 机器学习sklearn:编码、哑变量、二值化和分段
  • 【数据分享】南海综合波浪数据(1945-2018 年)(获取方式看文末)
  • OCR、文档解析工具合集
  • 在Alpine Linux上配置Redis使用NFS存储的完整指南
  • 包裹移动识别误报率↓76%:陌讯时序建模算法实战解析
  • 【C++】stack和queue
  • BGP服务器对于网络攻击该怎么办?
  • 《操作系统真象还原》 第五章 保护模式进阶
  • Qt结合ffmpeg实现图片参数调节/明亮度对比度饱和度设置/滤镜的使用
  • axios请求的取消
  • LOVON——面向足式Open-Vocabulary的VLN导航:LLM做任务分解、YOLO11做目标检测,最后L2MM将指令和视觉映射为动作,且解决动态模糊
  • ansible.cfg 配置文件的常见配置项及其说明
  • zabbix平台无法删除已停用主机的处理案例
  • Idea集成Jenkins Control插件,在IDEA中触发Jenkins中项目的构建
  • vivado implementation报错[Designutils 20-1307]
  • Dify版本升级实操
  • JavaWeb(苍穹外卖)--学习笔记16(定时任务工具Spring Task,Cron表达式)
  • 微信小程序页面间通信的实现方式
  • 《n8n基础教学》第一节:如何使用编辑器UI界面
  • 技术分享: 网关限流
  • kotlin语法和特性分析
  • 信号发生器和示波器阻抗匹配问题
  • WordPress 前端显示英文,后台显示中文的设置
  • 【苍穹外卖项目】Day05
  • 铁皮矫平机冷知识·第三弹
  • 如何保护 Redis 实例的安全?
  • uniapp基础 (一)
  • 基于倍增的LCA + kruskal重构树 + 并查集
  • 嵌入式系统教学范式演进:云端仿真平台如何重构温湿度监测实验教学
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第二天(CSS)