改進冒泡排序算法
冒泡排序(Bubble sort)是基于交換排序的一種算法。它是依次兩兩比較待排序元素,若為逆序(遞增或遞減)則進行交換。將待排序元素從左至右比較一遍稱為一趟"冒泡"。每趟冒泡都將待排序列中的最大關鍵字交換到最后(或最前)位置。直到全部元素有序為止。若本次冒泡處理過程中,沒有進行交換,說明序列已有序,則停止交換。這就是改進的冒泡算法的處理思想 。
public class BubbleSort { public void bubble(int [] a) { int i , j , t; int flag = 0;//標記是否發生交換 int n = a.length; for( i =0 ; i < n-1 ; i++) { for(j = n -1; j>i ; j--) { if(a[j-1]>a[j]) { t = a[j-1]; a[j-1] = a[j]; a[j] = t ; flag = 1; } } System.out.print("第" + (i+1)+"遍: "); for(j = 0 ; j < n ; j ++) { System.out.print(a[j]); } System.out.print("\n"); if(flag == 0) break; else flag = 0; } }public static void main(String[] args) { int [] b = {9,5,7,4,2,1,3}; BubbleSort bs = new BubbleSort(); bs.bubble(b); }
}</pre>輸出:
</span>
本文由用戶 Yangcl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!