所謂的冒泡排序其實很簡單,我們自己比較的時候也是拿著第一個數和剩余所有數進行逐一比較,得到最小或者最大的數。再拿第二個數進行比較......
假如有5個數,我們自己比較的話比較四輪就會出現結果,所有外層循環我們定義:
假定有一個數組a
for(int i=a.length-1;i>0;i--):a.length就是數組的個數值,這就始終控制我們比較的輪數比數組中數字的個數少1
進入當前輪次
我們會拿數一個一個的去進行比較,但是需要注意的是我們每一輪都會在剩余數組中挑出最小或者最大的那個,因此我們循環的次數也就每次都比之前少1次。
for(int j=0;j<i;j++) 因為我們定義的i輪數正好是遞減的。
這就達到了循環次數的控制。
接下來我們只需要進行數字交換即可。
這個時候我們可以參考如何讓兩個杯子中的水進行交換,我們當然就需要再找一個空杯子,因此在內部定義一個臨時變量即可進行交換。
具體代碼如下:
public static void m1(int []a){for(int i=a.length-1;i>0;i--){for(int j=0;j<i;j++){if(a[j]>a[j+1]){int trans=a[j]; a[j]=a[j+1]; a[j+1]=trans;}}}int i=1;for (int x : a) {System.out.PRintln("第 "+i+"個數是"+x);i++;}
新聞熱點
疑難解答