冒泡的三种写法

学而时习之,不亦说乎!

                             --《论语》

package com.zby.bubble;import java.util.Arrays;
/*** * <class description>简单初级冒泡算法java实现* @author zby**/
public class PrimaryBubble {public static void main(String[] args) {int[] arr = { 1, 9, 2, 8, 3, 7, 4, 6, 5, 0 };System.out.println("排序前数组元素为:" + Arrays.toString(arr));bubble(arr);System.out.println("排序后数组元素为:" + Arrays.toString(arr));}public static void bubble(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1; j++) {System.out.println("第" + (i + 1) + "趟,第" + (j + 1) + "次比较");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));}}
}
排序前数组元素为:[1, 9, 2, 8, 3, 7, 4, 6, 5, 0]
第1趟,第1次比较
第1趟,第2次比较
第1趟,第3次比较
第1趟,第4次比较
第1趟,第5次比较
第1趟,第6次比较
第1趟,第7次比较
第1趟,第8次比较
第1趟,第9次比较
第1趟后数组元素为:[9, 2, 8, 3, 7, 4, 6, 5, 1, 0]
第2趟,第1次比较
第2趟,第2次比较
第2趟,第3次比较
第2趟,第4次比较
第2趟,第5次比较
第2趟,第6次比较
第2趟,第7次比较
第2趟,第8次比较
第2趟,第9次比较
第2趟后数组元素为:[9, 8, 3, 7, 4, 6, 5, 2, 1, 0]
第3趟,第1次比较
第3趟,第2次比较
第3趟,第3次比较
第3趟,第4次比较
第3趟,第5次比较
第3趟,第6次比较
第3趟,第7次比较
第3趟,第8次比较
第3趟,第9次比较
第3趟后数组元素为:[9, 8, 7, 4, 6, 5, 3, 2, 1, 0]
第4趟,第1次比较
第4趟,第2次比较
第4趟,第3次比较
第4趟,第4次比较
第4趟,第5次比较
第4趟,第6次比较
第4趟,第7次比较
第4趟,第8次比较
第4趟,第9次比较
第4趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第5趟,第1次比较
第5趟,第2次比较
第5趟,第3次比较
第5趟,第4次比较
第5趟,第5次比较
第5趟,第6次比较
第5趟,第7次比较
第5趟,第8次比较
第5趟,第9次比较
第5趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第6趟,第1次比较
第6趟,第2次比较
第6趟,第3次比较
第6趟,第4次比较
第6趟,第5次比较
第6趟,第6次比较
第6趟,第7次比较
第6趟,第8次比较
第6趟,第9次比较
第6趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第7趟,第1次比较
第7趟,第2次比较
第7趟,第3次比较
第7趟,第4次比较
第7趟,第5次比较
第7趟,第6次比较
第7趟,第7次比较
第7趟,第8次比较
第7趟,第9次比较
第7趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第8趟,第1次比较
第8趟,第2次比较
第8趟,第3次比较
第8趟,第4次比较
第8趟,第5次比较
第8趟,第6次比较
第8趟,第7次比较
第8趟,第8次比较
第8趟,第9次比较
第8趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第9趟,第1次比较
第9趟,第2次比较
第9趟,第3次比较
第9趟,第4次比较
第9趟,第5次比较
第9趟,第6次比较
第9趟,第7次比较
第9趟,第8次比较
第9趟,第9次比较
第9趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
排序后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
package com.zby.bubble;import java.util.Arrays;
/*** * <class description>优化升级版冒泡java实现* @author zby**/
public class IntermediateBubble {public static void main(String[] args) {int[] arr = { 1, 9, 2, 8, 3, 7, 4, 6, 5, 0 };System.out.println("排序前数组元素为:" + Arrays.toString(arr));bubble(arr);System.out.println("排序后数组元素为:" + Arrays.toString(arr));}public static void bubble(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - i - 1; j++) {System.out.println("第" + (i + 1) + "趟,第" + (j + 1) + "次比较");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));}}
}
排序前数组元素为:[1, 9, 2, 8, 3, 7, 4, 6, 5, 0]
第1趟,第1次比较
第1趟,第2次比较
第1趟,第3次比较
第1趟,第4次比较
第1趟,第5次比较
第1趟,第6次比较
第1趟,第7次比较
第1趟,第8次比较
第1趟,第9次比较
第1趟后数组元素为:[9, 2, 8, 3, 7, 4, 6, 5, 1, 0]
第2趟,第1次比较
第2趟,第2次比较
第2趟,第3次比较
第2趟,第4次比较
第2趟,第5次比较
第2趟,第6次比较
第2趟,第7次比较
第2趟,第8次比较
第2趟后数组元素为:[9, 8, 3, 7, 4, 6, 5, 2, 1, 0]
第3趟,第1次比较
第3趟,第2次比较
第3趟,第3次比较
第3趟,第4次比较
第3趟,第5次比较
第3趟,第6次比较
第3趟,第7次比较
第3趟后数组元素为:[9, 8, 7, 4, 6, 5, 3, 2, 1, 0]
第4趟,第1次比较
第4趟,第2次比较
第4趟,第3次比较
第4趟,第4次比较
第4趟,第5次比较
第4趟,第6次比较
第4趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第5趟,第1次比较
第5趟,第2次比较
第5趟,第3次比较
第5趟,第4次比较
第5趟,第5次比较
第5趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第6趟,第1次比较
第6趟,第2次比较
第6趟,第3次比较
第6趟,第4次比较
第6趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第7趟,第1次比较
第7趟,第2次比较
第7趟,第3次比较
第7趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第8趟,第1次比较
第8趟,第2次比较
第8趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第9趟,第1次比较
第9趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
排序后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
package com.zby.bubble;import java.util.Arrays;
/*** * <class description>提升高级版冒泡java实现* @author zby**/
public class AdvancedBubble {public static void main(String[] args) {int[] arr = { 1, 9, 2, 8, 3, 7, 4, 6, 5, 0 };System.out.println("排序前数组元素为:" + Arrays.toString(arr));bubble(arr);System.out.println("排序后数组元素为:" + Arrays.toString(arr));}public static void bubble(int[] arr) {for (int i = 0; i < arr.length-1; i++) {boolean sorted=true;for (int j = 0; j < arr.length -i- 1; j++) {System.out.println("第"+(i+1)+"趟,第"+(j+1)+"次比较");if (arr[j] < arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;sorted=false;}}System.out.println("第" + (i+1) + "趟后数组元素为:" + Arrays.toString(arr));if(sorted){System.out.println("第"+(i+1)+"趟没有发生交换");break;}    }}
}
排序前数组元素为:[1, 9, 2, 8, 3, 7, 4, 6, 5, 0]
第1趟,第1次比较
第1趟,第2次比较
第1趟,第3次比较
第1趟,第4次比较
第1趟,第5次比较
第1趟,第6次比较
第1趟,第7次比较
第1趟,第8次比较
第1趟,第9次比较
第1趟后数组元素为:[9, 2, 8, 3, 7, 4, 6, 5, 1, 0]
第2趟,第1次比较
第2趟,第2次比较
第2趟,第3次比较
第2趟,第4次比较
第2趟,第5次比较
第2趟,第6次比较
第2趟,第7次比较
第2趟,第8次比较
第2趟后数组元素为:[9, 8, 3, 7, 4, 6, 5, 2, 1, 0]
第3趟,第1次比较
第3趟,第2次比较
第3趟,第3次比较
第3趟,第4次比较
第3趟,第5次比较
第3趟,第6次比较
第3趟,第7次比较
第3趟后数组元素为:[9, 8, 7, 4, 6, 5, 3, 2, 1, 0]
第4趟,第1次比较
第4趟,第2次比较
第4趟,第3次比较
第4趟,第4次比较
第4趟,第5次比较
第4趟,第6次比较
第4趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第5趟,第1次比较
第5趟,第2次比较
第5趟,第3次比较
第5趟,第4次比较
第5趟,第5次比较
第5趟后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第5趟没有发生交换
排序后数组元素为:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

 

转载于:https://www.cnblogs.com/zby9527/p/7478575.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

76. Minimum Window Substring

最后更新 一刷 08-Jan-2017 昨天Amazon group面结束&#xff0c;刚回家。 国内以前喜欢的女生结婚了&#xff0c;嘿嘿...好开心呀~~ 这次面试感觉自己的做法完爆别人&#xff0c;比什么2 greedy好多了 总之表现比想象的好&#xff0c;最后一面的面试官真是聪明得一逼&#xff…

day 02 python 基础

1.day1作业讲解 题目答案见day1 2.格式化输出 %占位符&#xff0c;s:字符串&#xff0c;d&#xff1a;数字 %%只是单纯的显示%&#xff08;显示的%是后面的&#xff09; 1 #格式化输出2 # % s d3 # name input(请输入姓名)4 # age input(请输入年龄)5 # height input(请输入…

python多维数据划分_【python+机器学习(4)】多维数据的特征选取(RidgeLasso)...

欢迎关注哈希大数据微信公众号【哈希大数据】在之前我们介绍了直接使用线性回归进行波士顿房价的预测&#xff0c;但是预测准确率仅有60%左右。预测准确率不高一方面是我们未对数据进行一定的预处理(包括归一化和标准化等)&#xff0c;这样不能确保在使用优化方式时&#xff0c…

leetcode64. 最小路径和(dp)

给定一个包含非负整数的 m x n 网格&#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。说明&#xff1a;每次只能向下或者向右移动一步。示例:输入: [[1,3,1],[1,5,1],[4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。代码 …

mysql浅拷贝_深拷贝与浅拷贝

在Python中&#xff0c;对象赋值实际上是对象的引用。当创建一个对象&#xff0c;然后把它赋给另一个变量的时候&#xff0c;Python并没有拷贝这个对象&#xff0c;而只是拷贝了这个对象的引用。1、浅拷贝&#xff1a;利用切片操作、工厂方法list方法拷贝2、深拷贝&#xff1a;…

盘州市“检企联合” 探索大数据应用新路

为认真贯彻落实“科技强检”及推进大数据应用的决策部署&#xff0c;8月31日&#xff0c;盘州市人民检察院组织召开以“检察大数据”为主题的“两长”座谈会。市经信局、中国移动盘州分公司、中国电信盘州分公司等单位负责人&#xff0c;检察院在家班子成员及院各部门主要负责人…

iOS中的颜色

最近在改Bug的时候&#xff0c;才注意到iOS 中的颜色竟然也大有文章&#xff0c;特来记录一下。 先说一下问题&#xff0c;因为某界面中有用xib实现的一个view&#xff0c;而这个view 只在UIColletionView的layout 里通过nib 注册使用&#xff0c;为这个xib设置了背景色&#x…

编程面试中需要了解的5件事

This article is intended for those who are trying to start their programming career, or are preparing to interview for their dream job. As someone who’s been on both sides of the interviewing table, I understand how it feels to be the interviewee.本文适用…

多线程的基础知识

1、程序、进程、线程的基本概念 程序&#xff1a;为了完成某种任务用某一种语言编写的一组指令的集合就叫程序。程序就是一段静态的代码。 进程&#xff1a;进程是程序的依次执行过程&#xff0c;或者说是正在运行的一个程序。这是一个动态的过程&#xff0c;有它自身的产生运行…

springboot实现单点登录_什么是单点登录,php是如何实现单点登录的

文章来自&#xff1a;php中文网链接&#xff1a;https://www.php.cn/php-weizijiaocheng-429869.html作者&#xff1a;中文网商务合作:请加微信(QQ)&#xff1a;2230304070视频教程分享码农网&#xff1a;http://www.mano100.cn/rjyfk_url-url.html &#xff0c;升级终身会员即…

背景图处理,这是个好东西记录一下

背景图处理 rgba &#xff08;&#xff09;&#xff0c;前3个是三原色&#xff0c;第四个参数是透明度转载于:https://www.cnblogs.com/ChineseLiao/p/7479207.html

python使用GUI(图形用户界面)

打开后&#xff1a; File→New File(Ctrl N) 转载于:https://www.cnblogs.com/ly123456/p/6269859.html

Altium Designer(AD24)新工程复用设计文件图文教程及视频演示

&#x1f3e1;《专栏目录》 目录 1&#xff0c;概述2&#xff0c;复用方法一视频演示2.1&#xff0c;创建工程2.2&#xff0c;复用设计文件 3&#xff0c;复用方法二视频演示4&#xff0c;总结 欢迎点击浏览更多高清视频演示 1&#xff0c;概述 本文简述使用AD软件复用设计文件…

两点定标法_一种两点校正红外热像仪的非均匀性的模块及方法

一种两点校正红外热像仪的非均匀性的模块及方法【技术领域】[0001] 本发明属于红外热成像系统的非均匀性校正领域&#xff0c;特别是一种两点校正红外热像 仪的非均匀性的模块及方法。【背景技术】[0002] 在过去的几十年中&#xff0c;红外探测器件的元数不断增加&#xff0c;由…

leetcode851. 喧闹和富有(dfs)

在一组 N 个人&#xff08;编号为 0, 1, 2, …, N-1&#xff09;中&#xff0c;每个人都有不同数目的钱&#xff0c;以及不同程度的安静&#xff08;quietness&#xff09;。 为了方便起见&#xff0c;我们将编号为 x 的人简称为 "person x "。 如果能够肯定 perso…

如何选择正确的容器编排以及如何进行部署

by Michael Douglass迈克尔道格拉斯(Michael Douglass) 如何选择正确的容器编排以及如何进行部署 (How to choose the right container orchestration and how to deploy it) Running server processes inside containers is here to stay. If your environment is small with…

Oracle 学习笔记(三)

oracle 表查询 oracle 表基本查询 在此&#xff0c;基于 scott 用户存在的 emp&#xff0c;dept 表演示学习。 emp 雇员表 clerk 员工 salesman 销售 manager 经理 analyst 分析师 president 总裁 mgr 上级的编号 hiredate 入职时间 sal 工资 comm 奖金 deptno 部…

html meta标签使用总结(转)

之前学习前端中&#xff0c;对meta标签的了解仅仅只是这一句。 <meta charset"UTF-8"> 但是打开任意的网站&#xff0c;其head标签内都有一列的meta标签。比如我博客的。 但是自己却很不熟悉&#xff0c;于是把meta标签加入了寒假学习计划的最前方。 简介 在查…

bzoj 4009 接水果 整体二分

Description 先给出一些盘子, 用路径x-y表示, 有权值 再有Q个询问, 表示水果, 用路径x-y表示 如果盘子是水果的子路径, 可以接住 对于每个水果, 输出可以接住它的盘子的第k小权 Solution 对于x-lca-y的盘子&#xff0c;水果一定一个在x子树&#xff0c;一个在y子树 对于x-lca的…

离散元 python_刚开始学习离散元软件Yade,有什么建议?

用Yade-DEM 做过博士期间的部分工作&#xff0c;也是从毫无所知到算是入门&#xff0c;分享一点我的学习过程&#xff0c;为那些刚接触Yade的同学提供些许参考&#xff0c;希望对大家有帮助。0. Yade 简介Yade 是一个用于离散元分析的开源平台&#xff0c;是法国Lab 3SR-Grenob…