1 package cn.zhang.Array; 2 3 import java.util.Arrays; 4 5 /** 6 * 冒泡排序及优化 7 * @author 张涛 8 * 9 */ 10 public class TestBubbleSort { 11 public static void main(String[] args) { 12 int[] a = {3,1,6,2,9,0,7,4,5,8}; 13 int temp= 0; 14 15 //冒泡排序 16 for(int i=0; i<a.length-1; i++) {//n个数只需要排序n-1次 17 18 //优化:从大循环的角度设立一个旗帜,用于判断是否执行力if语句,要一整个大循环都未执行if语句,才能结束 19 // 不能从小循环角度,可能小循环某次就没有执行if语句 20 boolean flag = true; 21 22 for(int j=0; j<a.length-1-i; j++) {//把已经排序好的i次减掉 23 24 if(a[j]>a[j+1]) {//从小到大进行排序 25 temp = a[j]; 26 a[j] = a[j+1]; 27 a[j+1] = temp; 28 29 flag = false; 30 } 31 System.out.println(Arrays.toString(a));//每次排序输出看一哈 32 } 33 if(flag) 34 return; 35 System.out.println("#####"); 36 } 37 } 38 }