Java之Algorithm_analysis案例详解
/* 冒泡排序:双层循环 1.外层循环:控制排序轮数,排序数组长度减1(最后一次循环只剩下一个元素,不需要比较,同时数组已完成排序。 2.内层循环:比较数组临近元素大小,确定是否交换位置,对比和交换次数随排序轮数而减少。 */
public class BubbleSort { public void sort(int[] array){ for(int i=1;i<array.length;i++){//控制轮数 //比较相邻两个元素,较大的数往后冒泡 for(int j=0;j<array.length-i;j++){//控制交换次数 if(array[j]>array[j+1]){//第一个数大于第二个数,进行交换 int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; System.out.println("第-------"+j+"-------次"); } System.out.println("第"+i+"轮"); showArray(array); } } showArray(array); } /* 显示数组 */ public void showArray(int[] array){ for(int i:array){//遍历数组 System.out.print(" 》"+i); } System.out.println(); } public static void main(String[] args) { //创建一个数组,这个数组元素是乱序的 int[] array = {63,4,24,1,3,15}; System.out.println("数组长度:"+array.length); System.out.println("========================="); //创建冒泡排序类对象 BubbleSort sorter = new BubbleSort(); //调用排序方法将数组排序 sorter.sort(array); }
显示结果
数组长度:6
=========================
第-------0-------次
第1轮
》4 》63 》24 》1 》3 》15
第-------1-------次
第1轮
》4 》24 》63 》1 》3 》15
第-------2-------次
第1轮
》4 》24 》1 》63 》3 》15
第-------3-------次
第1轮
》4 》24 》1 》3 》63 》15
第-------4-------次
第1轮
》4 》24 》1 》3 》15 》63
第2轮
》4 》24 》1 》3 》15 》63
第-------1-------次
第2轮
》4 》1 》24 》3 》15 》63
第-------2-------次
第2轮
》4 》1 》3 》24 》15 》63
第-------3-------次
第2轮
》4 》1 》3 》15 》24 》63
第-------0-------次
第3轮
》1 》4 》3 》15 》24 》63
第-------1-------次
第3轮
》1 》3 》4 》15 》24 》63
第3轮
》1 》3 》4 》15 》24 》63
第4轮
》1 》3 》4 》15 》24 》63
第4轮
》1 》3 》4 》15 》24 》63
第5轮
》1 》3 》4 》15 》24 》63
》1 》3 》4 》15 》24 》63
/*直接选择排序:指定排序位置与其他元素比较。交换次数减少。*/
public class SelectSort { public void sort(int[] array) { int index; for (int i = 1; i < array.length; i++) { index = 0; for (int j = 1; j <= array.length - i; j++) if (array[j] > array[index]) { index = j; } //交换位置array.length-i和index(最大值)上的两个数 int temp = array[array.length-i]; array[array.length - i] = array[index]; array[index] = temp; } showArray(array); } /* 显示数组 */ public void showArray(int[] array) { for (int i : array) {//遍历数组 System.out.print(" 》" + i); } System.out.println(); } public static void main(String[] args) { //创建一个数组,这个数组元素是乱序的 int[] array = {63, 4, 24, 1, 3, 15}; System.out.println("数组长度:" + array.length); System.out.println("========================="); //创建冒泡排序类对象 SelectSort sorter = new SelectSort(); //调用排序方法将数组排序 sorter.sort(array); } }
运行结果:
数组长度:6
=========================
》1 》3 》4 》15 》24 》63
到此这篇关于Java之Algorithm_analysis案例详解的文章就介绍到这了,更多相关Java之Algorithm_analysis内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
相关文章
- 这篇文章主要介绍了如何利用java语言实现经典《复杂迷宫》游戏,文中采用了swing技术进行了界面化处理,感兴趣的小伙伴可以动手试一试...2022-02-01
java 运行报错has been compiled by a more recent version of the Java Runtime
java 运行报错has been compiled by a more recent version of the Java Runtime (class file version 54.0)...2021-04-01- 这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
- 这篇文章主要介绍了Java如何发起http请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
- 说起C#和Java这两门语言(语法,数据类型 等),个人以为,大概有90%以上的相似,甚至可以认为几乎一样。但是在工作中,我也发现了一些细微的差别...2020-06-25
- 这篇文章主要介绍了解决Java处理HTTP请求超时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
- 这篇文章主要介绍了java 判断两个时间段是否重叠的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
java 画pdf用itext调整表格宽度、自定义各个列宽的方法
这篇文章主要介绍了java 画pdf用itext调整表格宽度、自定义各个列宽的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-31- 这篇文章主要介绍了超简洁java实现双色球若干注随机号码生成(实例代码),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-02
- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
Java使用ScriptEngine动态执行代码(附Java几种动态执行代码比较)
这篇文章主要介绍了Java使用ScriptEngine动态执行代码,并且分享Java几种动态执行代码比较,需要的朋友可以参考下...2021-04-15- 这篇文章主要介绍了Java开发实现人机猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-08-03
- 这篇文章主要介绍了Java List集合返回值去掉中括号('[ ]')的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-29
Java 8 Stream 的终极技巧——Collectors 功能与操作方法详解
这篇文章主要介绍了Java 8 Stream Collectors 功能与操作方法,结合实例形式详细分析了Java 8 Stream Collectors 功能、操作方法及相关注意事项,需要的朋友可以参考下...2020-05-20Java中lombok的@Builder注解的解析与简单使用详解
这篇文章主要介绍了Java中lombok的@Builder注解的解析与简单使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-06- 下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
- 这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
- 这篇文章主要介绍了Java线程池中的各个参数如何合理设置操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-19