冒泡排序法及优化

【7】在没有数据交换的时候,提前退出冒泡排序。

package array;

public class array1 {

	public static void main(String[] args) {
		
		//冒泡排序法排序
		int[] a= {2,5,3,7,6,8,9,10};
		int n=a.length;
		
		for(int i=0;i<n;i++)
		{
			boolean flag=false;//提前退出冒泡循环的标志位
			for(int j=0;j<n-i-1;j++)
			{
				if(a[j]>a[j+1])
				{
					int tmp=a[j];
					a[j]=a[j+1];
					a[j+1]=tmp;
					flag=true;//表示有数据交换
				}
			}
			if(!flag)break;//没有数据交换,提前退出
		}
		
		for(int i=0;i<n;i++)
		{
			System.out.print(a[i]+" ");
		}

	}

}

冒泡排序法及优化