冒泡排序及优化

 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 }
原文地址:https://www.cnblogs.com/zhangqiling/p/11376145.html