1. 程式人生 > >算法(1)——Java冒泡算法

算法(1)——Java冒泡算法

info 算法 一個 stat bubble 比較 接下來 mage body

Java冒泡算法算是最常見的算法之一了。那麽什麽是冒泡算法呢?如下圖所示(圖片來自網絡):

其實可以看到,第一遍的遍歷過程中,首先比較第一對數字,比較交換完成後第二個數字一定是比較大的,接下來比較第二對,同樣進行比較交換,那麽這個時候第三個數一定是較大的,這樣所有的數對比較完成之後,最大的數字就會冒泡到數組的最右側。接下來第二輪就可以把第二大的數放在右側數第二個位置上,以此類推...當遍歷一遍沒有可以交換的數字的時候,就說明這個隊列已經是有序的了。

技術分享圖片

 1 public static void main(String[] args) {
 2         int[] arr = {11, 13, 10, 34, 31, 24, 15, 16, 26, 9, 16, 4992, 356};
3 bubbleSort(arr);//排序完成,數字為9,10,11,13,15,16,16,24,26,31,34,356,4992, 4 } 5 6 7 public static void bubbleSort(int[] arr) { 8 for (int i = 0; i < arr.length - 1; i++) { 9 boolean flag = true;//設定一個標記,若為true,則表示排序已然完成。 10 for (int j = 0; j < arr.length - 1 - i; j++) {
11 if (arr[j] > arr[j + 1]) { 12 int temp = arr[j]; 13 arr[j] = arr[j+1]; 14 arr[j+1] = temp; 15 flag = false; 16 } 17 } 18 if (flag) { 19 System.out.print("排序完成,數字為");
20 for (int i1 : arr) { 21 System.out.print(i1+","); 22 } 23 break; 24 } 25 } 26     27 }

算法(1)——Java冒泡算法