冒泡排序JAVA_122-123
来源:互联网 发布:微信假视频聊天软件 编辑:程序博客网 时间:2024/05/04 12:15
来源:http://www.bjsxt.com/
1、S02E122_01冒泡排序
package com.test.sort.bubble;import java.util.Arrays;/** * 冒泡排序(bubble sort):此例实现升序排序 * <br>简易版:每个数都与其它数比较大小 * <br>优化版:减少每趟次数,之前比较过的不再比较 * <br>最终版:考虑有序,减少趟数 */public class BubbleSort { public static void main(String[] args) { int[] arr = {3,4,9,2,1}; sort1(arr); arr = new int[] {3,4,9,2,1}; sort2(arr); arr = new int[] {9,1,2,3,4}; sort3(arr); } /** * 简易版simple */ public static void sort1(int[] arr){ System.out.println("*************简易版simple*************"); int len = arr.length; for (int i = 0; i < len - 1; i++) {//趟数 System.out.println("第" + (i+1) + "趟"); for (int j = 0; j < len - 1; j++) {//次数 System.out.print("第" + (j+1) + "次"); if(arr[j] > arr[j+1]){ int temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; } System.out.println(Arrays.toString(arr)); } } } /** * 优化版optimized */ public static void sort2(int[] arr){ System.out.println("*************优化版optimized*************"); int len = arr.length; for (int i = 0; i < len - 1; i++) {//趟数 System.out.println("第" + (i+1) + "趟"); for (int j = 0; j < len - 1 - i; j++) {//次数,-i减少每趟次数 System.out.print("第" + (j+1) + "次"); if(arr[j] > arr[j+1]){ int temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; } System.out.println(Arrays.toString(arr)); } } } /** * 最终版final */ public static void sort3(int[] arr){ System.out.println("*************最终版final*************"); int len = arr.length; boolean issort = true; for (int i = 0; i < len - 1; i++) {//趟数 issort = true;//假定有序 System.out.println("第" + (i+1) + "趟"); for (int j = 0; j < len - 1 - i; j++) {//次数,-i减少每趟次数 System.out.print("第" + (j+1) + "次"); if(arr[j] > arr[j+1]){ int temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; issort = false;//有交换,假定失败 } System.out.println(Arrays.toString(arr)); } if(issort){ break; } } }}
***简易版simple*************
第1趟
第1次[3, 4, 9, 2, 1]
第2次[3, 4, 9, 2, 1]
第3次[3, 4, 2, 9, 1]
第4次[3, 4, 2, 1, 9]
第2趟
第1次[3, 4, 2, 1, 9]
第2次[3, 2, 4, 1, 9]
第3次[3, 2, 1, 4, 9]
第4次[3, 2, 1, 4, 9]
第3趟
第1次[2, 3, 1, 4, 9]
第2次[2, 1, 3, 4, 9]
第3次[2, 1, 3, 4, 9]
第4次[2, 1, 3, 4, 9]
第4趟
第1次[1, 2, 3, 4, 9]
第2次[1, 2, 3, 4, 9]
第3次[1, 2, 3, 4, 9]
第4次[1, 2, 3, 4, 9]
***优化版optimized*************
第1趟
第1次[3, 4, 9, 2, 1]
第2次[3, 4, 9, 2, 1]
第3次[3, 4, 2, 9, 1]
第4次[3, 4, 2, 1, 9]
第2趟
第1次[3, 4, 2, 1, 9]
第2次[3, 2, 4, 1, 9]
第3次[3, 2, 1, 4, 9]
//4和9比较过了,不再比较
第3趟
第1次[2, 3, 1, 4, 9]
第2次[2, 1, 3, 4, 9]
//3和4比较过了,不再比较
//4和9比较过了,不再比较
第4趟
第1次[1, 2, 3, 4, 9]
//2和3、4、9比较过了,不再比较
***最终版final*************
第1趟
第1次[1, 9, 2, 3, 4]
第2次[1, 2, 9, 3, 4]
第3次[1, 2, 3, 9, 4]
第4次[1, 2, 3, 4, 9]
第2趟
第1次[1, 2, 3, 4, 9]
第2次[1, 2, 3, 4, 9]
第3次[1, 2, 3, 4, 9]
//3次都没交换(第四次4和9比较过了),有序了就不再比较了。
- 冒泡排序JAVA_122-123
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 持续交付团队该如何做重构
- usb3.0的driver porting——基于linux kernel3.18的usb gadget udc driver & net3380 driver porting
- HDU3466 01背包技巧题
- TV总变分最小化介绍
- 如何在Cocos2D游戏中实现A*寻路算法(四)
- 冒泡排序JAVA_122-123
- Android四大组件Service之bindService启动
- Mac安装Brew & 如何在mac os中安装gdb及为gdb进行代码签名
- 简单的多线程
- gcc编译系统
- 解决ubuntu 下virtualbox 装ubuntu屏幕大小问题
- UVa213 - Message Decoding
- eclipse配置java之opencv
- 文档--项目中交流的利器还是项目的绊脚石