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

冒泡排序写法

正宗的冒泡排序写法:

public class BubbleSort {public static void main(String[] args) {int[] a = {4,6,5,24,3,7,1};//初始化一个最大角标变量int n= a.length-1;//循环轮次for (int i=0;i<n;i++){//从后向前开始,相邻元素比较大小,小的元素向前移动;for (int j =n;j>i;j--){if (a[j-1]>a[j]){int temp=a[j-1];a[j-1]=a[j];a[j]=temp;}}}//打印最后排序好的数组System.out.println(Arrays.toString(a));}
}

最后运行的打印结果:
在这里插入图片描述
这种写法当然存在一定的弊端,就是假如这个数组内只有两个元素无序的,其他的元素都是有序的,例如:{1,3,2,4,5,6,7,8}那么其他有序的元素就没有必要再一一对比了,于是就有了下面的优化算法;


public class BubbleSort {public static void main(String[] args) {int[] a = {1,3,2,4,5,6,7,8};//初始化一个最大角标变量int n= a.length-1;//标记变量boolean flag = true;//循环轮次for (int i=0;i<n&&flag;i++){flag=false;//从后向前开始,相邻元素比较大小,小的元素向前移动;for (int j =n;j>i;j--){if (a[j-1]>a[j]){int temp=a[j-1];a[j-1]=a[j];a[j]=temp;flag=true;}}}//打印最后排序好的数组System.out.println(Arrays.toString(a));}
}

打印结果:
在这里插入图片描述
可以看到,优化后的算法增加了一个标识,只遍历两轮就结束了,省去了无用的遍历开销;

相关文章:

  • javaEE——Servlet
  • 探索哈希函数:数据完整性的守护者
  • 线性代数笔记
  • 软考系统架构师高效备考方法论
  • Python从零学习笔记(1)
  • 接口测试流程及测试点!
  • JS数据处理(冒泡寻找对象里面有个Key相同的值并处理相关数据)
  • slot插槽详解及动态插槽的使用
  • 全网最详细,零基础学会AI绘画Stable Diffusion,学不会来打我!
  • 【第二套】华为 2024 年校招-硬件电源岗
  • Pandas_DataFrame读写详解:案例解析(第24天)
  • 基于Datax开发支持瀚高数据库的插件_插件开发_以及部署---国产瀚高数据库工作笔记006
  • Find My随身WiFi|苹果Find My技术与随身WiFi结合,智能防丢,全球定位
  • Python入门 2024/7/2
  • 用C语言做一个web站,富文本写入与展示,用户登录,文本目录划分
  • @jsonView过滤属性
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Cumulo 的 ClojureScript 模块已经成型
  • Debian下无root权限使用Python访问Oracle
  • Electron入门介绍
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • javascript 哈希表
  • JSDuck 与 AngularJS 融合技巧
  • Median of Two Sorted Arrays
  • miaov-React 最佳入门
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • python 装饰器(一)
  • React Transition Group -- Transition 组件
  • React-flux杂记
  • ReactNative开发常用的三方模块
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SwizzleMethod 黑魔法
  • Xmanager 远程桌面 CentOS 7
  • 给新手的新浪微博 SDK 集成教程【一】
  • 如何合理的规划jvm性能调优
  • 深度解析利用ES6进行Promise封装总结
  • 推荐一个React的管理后台框架
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (搬运以学习)flask 上下文的实现
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (六)Hibernate的二级缓存
  • (论文阅读11/100)Fast R-CNN
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)菜鸟学数据库(三)——存储过程
  • .Net Core 中间件验签