package Test5;
public class maoPai {
	
	public static void main(String[] args) {
		int a[]={56,23,78,1,0,9,46,20};
		
		maoPai.paiXu(a);
		
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
	}
	public static void paiXu(int a[]){
		boolean t=true;A冒泡排序的优化,定一个boolean,作为标识
		
		for(int i=0;i<a.length-1;i++){//外层循环,次数是数组长度-1,因为比较次数比个数少一
			for(int j=0;j<a.length-1-i;j++){//内层循环,①保证不超过下标最大值(a.length-1)②因为外层循环i已决定了拍好的几个数,减去降低重复性
				if(a[j]>a[j+1]){
					int b=0;
					b=a[j];
					a[j]=a[j+1];
					a[j+1]=b;
					t=false;B如果进到if()中进行交换,标识改为false
				}
			}
			if(t){
				return;C如果表示为return,以为着表示为return,表示没有进到if()中,数组以然有序,减少重复
			}
		}
		
	}
}
原文:http://www.cnblogs.com/BlogRegisterboby/p/5925020.html