java冒泡排序

冒泡排序的原理很簡單:就是緊挨着的兩兩比較,小的放前面,大的放後面,直到最後一位。
這樣一次整體的比較過後(其實你只是把最後一位排好了)。
同理
我們忽略最後一位,再做第二次整體比較,忽略最後兩位,再做第三次整體比較,忽略後三位,直到只剩下一位。
public class Main{
	public static void main(String[] args){
	   int[]a={1,3,5,2,2,6,8,1};
	   a.sort()
	   for(int i=0;i<a.length;i++){
	   System.out.println(a[i]);
	   }

}
	public static sort(int[]a){
	boolean flag;
	    for(int j=a.length-1;j>0;j--){
	    flag=true;
		for(int i=0;i<j;i++){//先寫這一步,發現i<後面的這個數是變量,所以再加一層for
			if(a[i]>a[i+1]){
				int k=a[i];
				a[i]=a[i+1];
				a[i+1]=k;
				flag=false;//凡是進行兩兩交換,說明這些數就不是完美的
				}
			if(flag==true){
			    break;//如果沒有交換,就不必進行後面的比較了
			    }
			}

		}



	}
此代碼還可以進行優化,就是當我們進行一次完整的兩兩比較的時候,發現並沒有數字進行交換,說明這些數字都是完美的,不用再進行接下來的比較,正好如同質數一樣,當出現一個整除,後面不用進行比較
我們引入flag

	







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章