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

冒泡排序Java第一版

大家好,欢迎来到程序视点!我是你们的新朋友.安戈!

前言

今天我们来分享下最简单的算法排序问题:冒泡排序

以下是Java实现的冒泡排序算法,包含详细注释和优化策略。

冒泡排序基础版本

关键点

  • 双重循环结构
  • 每轮将最大元素"冒泡"到数组末尾
  • 内层循环次数随轮数增加递减

代码实现

   /*** 经典冒泡排序(升序排列)* 时间复杂度:O(n²) 最优情况O(n)(通过优化实现)* 空间复杂度:O(1) 原地排序* 稳定性:稳定排序(相等元素不交换)*/public static void bubbleSort(int[] arr) {if (arr == null || arr.length < 2) {return; // 边界条件检查}int n = arr.length;// 外层循环控制排序轮数(n-1轮)for (int i = 0; i < n - 1; i++) {// 内层循环控制每轮比较次数(随着轮数增加,比较次数减少)for (int j = 0; j < n - 1 - i; j++) {// 相邻元素比较交换if (arr[j] > arr[j + 1]) {swap(arr, j, j + 1);}}}}// 交换数组元素private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;// 注意:这里可以改为异或交换(但不推荐实际使用)// arr[i] ^= arr[j];// arr[j] ^= arr[i];// arr[i] ^= arr[j];}

上面是最经典的冒泡排序,但这不是最优版本。

比如:如果排序数组中,本来就有一些已经排好序的索引位,再进行数组循环就没有意思了。下一次的优化版本就解决这个问题

今天的分享先到这里了。

最后

【程序视点】助力打工人减负,从来不是说说而已!

如果你觉得这篇教程有帮助,别忘了【点赞+收藏+关注】三连支持!

后续安戈会持续分享更多开发工具和技巧,敬请期待!如果有其他工具需求,欢迎留言讨论~  🚀


文章转载自:

http://4v7in1Ub.gqcsd.cn
http://9mEX54AH.gqcsd.cn
http://AZEl1bSd.gqcsd.cn
http://gn41q3p9.gqcsd.cn
http://x53P8Moh.gqcsd.cn
http://C1JMBhQH.gqcsd.cn
http://KFYDAFST.gqcsd.cn
http://rIN0fZfQ.gqcsd.cn
http://zi8MZEP6.gqcsd.cn
http://X2U4y4Ev.gqcsd.cn
http://1RRLhfim.gqcsd.cn
http://XQgeTjc4.gqcsd.cn
http://41xr2Mr1.gqcsd.cn
http://052U1bCS.gqcsd.cn
http://5HuUCjkL.gqcsd.cn
http://n1atHBRc.gqcsd.cn
http://vHmepOrR.gqcsd.cn
http://FnqB0Nw3.gqcsd.cn
http://pHzaSwYY.gqcsd.cn
http://u8a0q7Mh.gqcsd.cn
http://9ihIlUmS.gqcsd.cn
http://FGxso0fr.gqcsd.cn
http://iHbshEwZ.gqcsd.cn
http://G3RnW2mI.gqcsd.cn
http://m2Ir44NB.gqcsd.cn
http://kHdNtCmq.gqcsd.cn
http://7XwOXADM.gqcsd.cn
http://NxtHj7ek.gqcsd.cn
http://NCj2UXCj.gqcsd.cn
http://ZteDuDu9.gqcsd.cn
http://www.dtcms.com/a/385481.html

相关文章:

  • DevOps历程--Docker安装Jenkins详细教程
  • 《自动控制原理》第 1 章 绪论
  • 【10】C#实战篇——C# 调用 C++ dll(C++ 导出函数、C++导出类)
  • Flask框架的简单了解
  • 高性能代码优化实战与解析
  • 企业即时通讯保障企业通讯安全,提升企业部门协作效率
  • 在亚洲市场:为何CES Asia无法被复制?
  • 【cpp Trip第2站】map,set,hash
  • 菊风携手东莞银行,推进金融信创国产化进程
  • 内部类的用法
  • 设计模式(C++)详解—适配器模式(2)
  • 6.Cesium 学习
  • 拉氏变换的 s 域微分性质
  • 掌握Scrapy数据建模与请求技巧
  • LLaMA Factory微调记录(重修版)
  • JAVA开发面试题
  • 逆向国内外社媒电商爬虫算法思路
  • 中山AI搜索优化公司:AI时代GEO技术全解析
  • PostgreSQL GIN 索引揭秘
  • 老鸟对单片机全局变量常用用法(读写在2个独立函数中)
  • 大前端社交应用中 AI 驱动的内容审核与反垃圾信息机制
  • MP3的ID3信息简介及其如何解析
  • MyBatis-Plus 扩展全局方法
  • java中的泛型
  • 使用 AWS Comprehend 综合指南
  • 使用秩和比拟解决非独立同分布情况下的投毒攻击
  • 七、vue3后台项目系列——包装scss、全句变量scss与导入
  • 煤矿山井下绝绝缘监测故障定位
  • 海外分部人员OA请假申请时长为0
  • MySQL --JDBC