博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
冒泡的三种写法
阅读量:6251 次
发布时间:2019-06-22

本文共 5528 字,大约阅读时间需要 18 分钟。

学而时习之,不亦说乎!

                             --《论语》

package com.zby.bubble;import java.util.Arrays;/** *  * 
简单初级冒泡算法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;/** *  * 
优化升级版冒泡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;/** *  * 
提升高级版冒泡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

你可能感兴趣的文章
varnish学习以及CDN的原理
查看>>
服务器配置 隐藏apache和php的版本
查看>>
将数据表中的数据导出到Excel、将Excel中的数据导入到数据表
查看>>
数据恢复系列(1)~恢复方案制定
查看>>
ASCII码值表
查看>>
关于Python中继承的格式总结
查看>>
2019年目标
查看>>
[SDOI2017]数字表格【莫比乌斯反演】
查看>>
每日一句(11)
查看>>
搭建nexus3版的maven私服(Centos7环境)
查看>>
[TJOI2017]可乐
查看>>
网易云信案例简析:锤科情怀缩影,子弹短信路在何方?
查看>>
c#-SimHash匹配相似-算法
查看>>
字符复习
查看>>
Linux系统挂载ntfs分区
查看>>
10.常见数据库操作1
查看>>
JavaScript高级-定义函数(类)方法
查看>>
移动web图片高度自适应的解决方案
查看>>
API
查看>>
需求获取的前期工作(不断更新)
查看>>