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

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

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

      【算法】快速排序(Quick Sort)(六)

      快速排序(Quick Sort)

      快速排序的基本思想:通過一趟排序將待排記錄分隔成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分的關鍵字小,則可分別對這兩部分記錄繼續進行排序,以達到整個序列有序。

      1.算法描述

      快速排序使用分治法來把一個串(list)分為兩個子串(sub-lists)。具體算法描述如下:

      • 從數列中挑出一個元素,稱為 “基準”(pivot);
      • 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的后面(相同的數可以到任一邊)。在這個分區退出之后,該基準就處于數列的中間位置。這個稱為分區(partition)操作;
      • 遞歸地(recursive)把小于基準值元素的子數列和大于基準值元素的子數列排序。

      2.動圖演示

      3.代碼實現

      //javascript實現
      function quickSort(arr, left, right) {
          var len = arr.length,
              partitionIndex,
              left =typeof left !='number' ? 0 : left,
              right =typeof right !='number' ? len - 1 : right;
          if (left < right) {
              partitionIndex = partition(arr, left, right);
              quickSort(arr, left, partitionIndex-1);
              quickSort(arr, partitionIndex+1, right);
          }
          return arr;
      }
      
      function partition(arr, left ,right) {    // 分區操作
          var pivot = left,                     // 設定基準值(pivot)
              index = pivot + 1;
          for (var i = index; i <= right; i++) {
              if (arr[i] < arr[pivot]) {
                  swap(arr, i, index);
                  index++;
              }       
          }
          swap(arr, pivot, index - 1);
          return index-1;
      }
      
      function swap(arr, i, j) {
          var temp = arr[i];
          arr[i] = arr[j];
          arr[j] = temp;
      }
      
      //java實現
      public class QuickSort implements IArraySort {
      
          @Override
          public int[] sort(int[] sourceArray) throws Exception {
              // 對 arr 進行拷貝,不改變參數內容
              int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
              return quickSort(arr, 0, arr.length - 1);
          }
      
          private int[] quickSort(int[] arr, int left, int right) {
              if (left < right) {
                  int partitionIndex = partition(arr, left, right);
                  quickSort(arr, left, partitionIndex - 1);
                  quickSort(arr, partitionIndex + 1, right);
              }
              return arr;
          }
      
          private int partition(int[] arr, int left, int right) {
              // 設定基準值(pivot)
              int pivot = left;
              int index = pivot + 1;
              for (int i = index; i <= right; i++) {
                  if (arr[i] < arr[pivot]) {
                      swap(arr, i, index);
                      index++;
                  }
              }
              swap(arr, pivot, index - 1);
              return index - 1;
          }
      
          private void swap(int[] arr, int i, int j) {
              int temp = arr[i];
              arr[i] = arr[j];
              arr[j] = temp;
          }
      
      }
      
      posted @ 2022-03-16 21:45  HZX↑  閱讀(54)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩中文字幕有码av| 一区二区三区在线色视频| 亚洲 制服 丝袜 无码| 国产中文字幕一区二区| 豆国产97在线 | 亚洲| 国产精品久久久久久免费软件| 久久久精品人妻一区二区三区 | 在线观看中文字幕码国产| 四虎精品永久在线视频| 国产一区二区三区小说 | 国产精品国产三级国产专业| 国产精品中文字幕第一区| 午夜免费无码福利视频麻豆| 亚洲精品男男一区二区| 日本污视频在线观看| 亚洲精品国产av成拍色拍个| 久久久久人妻精品一区三寸| 国产一区精品在线免费看| 国产乱子伦无套一区二区三区| 国产精品一区二区传媒蜜臀| 亚洲第一二三区日韩国产| 亚洲一区二区av高清| 狠狠综合久久av一区二| 精品国产国语对白主播野战| 天堂亚洲免费视频| 亚洲精品成人福利网站| 精品无码国产日韩制服丝袜| 亚洲欧洲一区二区免费| 黄色三级亚洲男人的天堂| 亚洲性夜夜天天天| 日韩中文字幕v亚洲中文字幕| 野外做受三级视频| 翁源县| 国产无遮挡猛进猛出免费| 强开少妇嫩苞又嫩又紧九色| 亚洲最大成人免费av| 成人精品老熟妇一区二区| 亚洲国产精品成人精品无码区在线 | 日本欧美大码a在线观看| 国产成人AV男人的天堂| 日韩人妻无码精品久久|