今天開始學習各大排序了。首先是冒泡排序。顧名思義,冒泡排序就是重得往下沉,纔會有氣泡上升。java
對於一個數組,要求從小到大得進行排序。例如[36,25,48,12,25,65,43,57];數組
排序只需排數組長度減一次,由於倒數第二次排好後最後一個數也就在相應得位置了。學習
而且若是數組在外循環中就已是排好得時候,那麼就能夠中止了,所以設立一個flag標誌位。spa
冒泡排序是兩個數兩兩比較。代碼以下:code
1 import java.util.Arrays; 2 3 public class BubbleSort { 4 public static void main(String[] args) { 5 int[] nums = {36,25,48,12,25,65,43,57}; 6 System.out.println(Arrays.toString(bubbleSort(nums)));; 7 } 8 9 private static int[] bubbleSort(int[] nums) { 10 int len = nums.length; 11 boolean falg; 12 for (int i = 0; i < len-1; i++) { 13 falg = false; 14 for (int j = 0; j < len -1 -i; j++) {//減i是由於最後i個數已經排好序,沉底了 15 if(nums[j]>nums[j+1]){//若是當前的值比下一個大,那麼他們兩個數換位置 16 int temp = nums[j+1]; 17 nums[j+1] = nums[j]; 18 nums[j] = temp; 19 falg = true; 20 } 21 } 22 if(!falg){//若是上述if條件始終未知足,也就是表明數組已經排好了,能夠提早結束沒必要要的遍歷。那麼flag就沒有變成true。那麼直接退出循環。 23 break; 24 } 25 } 26 return nums; 27 } 28 29 }