<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      冒泡排序

      冒泡排序(Java)

      聲明:本文參考http://www.rzrgm.cn/kalton/p/13649798.html

      一、原理 

      1. 比較兩個相鄰的元素,將值大的元素交換到右邊
      2. 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。
      3. 針對所有的元素重復以上的步驟,除了最后一個。
      4. 持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

      二、優化原理

        如果在某次單趟排序中沒有發生元素的交換,可以說明整個待排序列已經有序

      三、時間復雜度

        時間復雜度為O(n^2)

      四、代碼實現(基本代碼)

       1 //冒泡排序
       2 public class bubbleSort {
       3     public static int[] sort(int arr[]) {
       4         System.out.println("------冒泡排序------");
       5         int tmp = 0;
       6         for (int i = 0; i < arr.length-1; i++) {
       7             for (int j = arr.length-1; j > i; j--) {
       8                 if (arr[j] < arr[j-1]) {
       9                     //進行交換
      10                     tmp = arr[j];
      11                     arr[j] = arr[j-1];
      12                     arr[j-1] = tmp;
      13                 }
      14             }
      15         }
      16         return arr;
      17     }
      18 }

      五、優化代碼(一)

      public static void bubbleSort(int[] arr){
          if (arr == null || arr.length == 0) return;//無序數列的邊界,每次比較只需要比到這里為止
          int sortBorder = arr.length-1;
          for (int i = 0; i < arr.length - 1; i++) {
              //是否已經有序的標記,默認有序
              boolean isSorted = true;
              for (int j = 0; j < sortBorder; j++) {
                  int tmp = 0;
                  //升序排序>,降序排序<
                  if (arr[j] > arr[j + 1]){
                      tmp = arr[j];
                      arr[j] = arr[j+1];
                      arr[j+1] = tmp;
                      //發生元素交換,序列仍是無序狀態
                      isSorted = false;
                  }
              }
           //如果沒有發生交換,則待排序列已有序,退出一重循環
      if (isSorted){ break; } } }

       

      六、優化代碼(二):雞尾酒排序

      優點:能夠在特定條件下,減少排序的回合數

      缺點:代碼量幾乎增加了1倍

      應用場景:無序數列中大部分元素已經有序

      public static void cockTailSort(int[] arr){
          if (arr == null || arr.length == 0) return;
          // 記錄右側最后一次交換的位置
          int lastRightExchangeIndex = 0;
          // 記錄左側最后一次交換的位置
          int lastLeftExchangeIndex = 0;
          // 無序數列的右邊界,每次比較只需要比到這里為止
          int rightSortBorder = arr.length - 1;
          // 無序數列的左邊界,每次比較只需要比到這里為止
          int leftSortBorder = 0;
      
          //i設置為1,代表從第1輪開始
          for (int i = 1; i < arr.length; i++) {
              boolean isSorted = true;
              //奇數,從左到右
              if (i % 2 != 0) {
                  for (int j = leftSortBorder; j < rightSortBorder; j++) {
                      if (arr[j] > arr[j + 1]) {
                          int temp = arr[j];
                          arr[j] = arr[j + 1];
                          arr[j + 1] = temp;
                          //發生元素交換,序列仍是無序狀態
                          isSorted = false;
                          //更新為右側最后一次交換元素的位置
                          lastRightExchangeIndex = j;
                      }
                  }
              } else {
                  //偶數,從右到左
                  for (int j = rightSortBorder; j > leftSortBorder; j--) {
                      if (arr[j] < arr[j - 1]) {
                          int temp = arr[j];
                          arr[j] = arr[j - 1];
                          arr[j - 1] = temp;
                          //發生元素交換,序列仍是無序狀態
                          isSorted = false;
                          //更新為左側最后一次交換元素的位置
                          lastLeftExchangeIndex = j;
                      }
                  }
              }
              //更新無序數列的左邊界
              leftSortBorder = lastLeftExchangeIndex;
              //更新無序數列的右邊界
              rightSortBorder = lastRightExchangeIndex;
              if (isSorted) {
                  break;
              }
          }
      
      }

       

      posted @ 2021-12-05 23:53  xiayiLL  閱讀(31)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 白玉县| 激情综合五月丁香亚洲| 99热精品毛片全部国产无缓冲| 精品人妻中文无码av在线| 精品一区二区三区四区色| 乱老年女人伦免费视频| 亚洲色成人网站www永久四虎| 国产精品美女一区二三区| av天堂久久精品影音先锋| 污污网站18禁在线永久免费观看| 久章草在线毛片视频播放| 麻豆亚州无矿码专区视频| 人人人澡人人肉久久精品| 人人妻人人狠人人爽天天综合网| 激情综合网激情综合网激情| 国产精品国三级国产av| 亚洲午夜无码av毛片久久| 波多野结衣久久一区二区| 国产老熟女无套内射不卡| 色欧美片视频在线观看| 性一交一乱一乱一视频| 国产精品福利中文字幕| 看免费真人视频网站| 激情综合网一区二区三区| 蜜臀久久精品亚洲一区| 国产午夜福利短视频| 国产精品成人无码久久久| 国产性一交一乱一伦一色一情| 人妻熟女一二三区夜夜爱| 丝袜美腿亚洲综合第一页| 不卡乱辈伦在线看中文字幕| 金湖县| 久久天天躁狠狠躁夜夜2020老熟妇| 国产老女人免费观看黄A∨片| 精品视频一区二区| 南郑县| 色成人亚洲| 欧美亚洲国产日韩电影在线| av中文字幕国产精品| 亚洲一区二区三区18禁| 国产大陆av一区二区三区|