排序算法(二)冒泡排序

    要點:  冒泡的核心是交換和遍歷,若是一個遍歷中沒有交換,則改隊列已是有序的。java

    根據上面這個點,咱們能夠添加一個標識變量,記錄交換狀況,優化冒泡排序。上代碼優化

   

public static void main(String[] args) {
		int[] a = {1, 5, 88, 4, 5, 0, 84, 69, 12, 5, 10, 254};
		System.out.println(Arrays.toString(a));
		optimizBubbleSort(a);
		System.out.println(Arrays.toString(a));
	}
	
	public static void optimizBubbleSort(int[] a){
		if(a!=null&&a.length>0){
			int len = a.length;
			for(int i = 0;i<len;i++){
				boolean trans = false;  //交換標識變量
				for(int j=0;j<len-1-i;j++){
					if(a[j]<a[j+1]){
						int t = a[j+1];
						a[j+1] = a[j];
						a[j] = t;
						trans = true;
					}
				}
				if(!trans){
					break;
				}
			}
		}
	}
相關文章
相關標籤/搜索