冒泡排序

今天開始學習各大排序了。首先是冒泡排序。顧名思義,冒泡排序就是重得往下沉,纔會有氣泡上升。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 }
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息