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

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

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

      【算法】歸并排序(Merge Sort)(五)

      歸并排序(Merge Sort)

      歸并排序是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個(gè)非常典型的應(yīng)用。將已有序的子序列合并,得到完全有序的序列;即先使每個(gè)子序列有序,再使子序列段間有序。若將兩個(gè)有序表合并成一個(gè)有序表,稱為2-路歸并。

      1.算法描述

      • 把長度為n的輸入序列分成兩個(gè)長度為n/2的子序列;
      • 對這兩個(gè)子序列分別采用歸并排序;
      • 將兩個(gè)排序好的子序列合并成一個(gè)最終的排序序列。

      2.動圖演示

      3.代碼實(shí)現(xiàn)

      //javascript實(shí)現(xiàn)
      function mergeSort(arr) {  // 采用自上而下的遞歸方法
          var len = arr.length;
          if (len < 2) {
              return arr;
          }
          var middle = Math.floor(len / 2),
              left = arr.slice(0, middle),
              right = arr.slice(middle);
          return merge(mergeSort(left), mergeSort(right));
      }
      
      function merge(left, right) {
          var result = [];
          while (left.length>0 && right.length>0) {
              if (left[0] <= right[0]) {
                  result.push(left.shift());
              }else {
                  result.push(right.shift());
              }
          }
          while (left.length)
              result.push(left.shift());
          while (right.length)
              result.push(right.shift());
          return result;
      }
      
      //java實(shí)現(xiàn)
      public class MergeSort implements IArraySort {
      
          @Override
          public int[] sort(int[] sourceArray) throws Exception {
              // 對 arr 進(jìn)行拷貝,不改變參數(shù)內(nèi)容
              int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
      
              if (arr.length < 2) {
                  return arr;
              }
              int middle = (int) Math.floor(arr.length / 2);
      
              int[] left = Arrays.copyOfRange(arr, 0, middle);
              int[] right = Arrays.copyOfRange(arr, middle, arr.length);
      
              return merge(sort(left), sort(right));
          }
      
          protected int[] merge(int[] left, int[] right) {
              int[] result = new int[left.length + right.length];
              int i = 0;
              while (left.length > 0 && right.length > 0) {
                  if (left[0] <= right[0]) {
                      result[i++] = left[0];
                      left = Arrays.copyOfRange(left, 1, left.length);
                  } else {
                      result[i++] = right[0];
                      right = Arrays.copyOfRange(right, 1, right.length);
                  }
              }
      
              while (left.length > 0) {
                  result[i++] = left[0];
                  left = Arrays.copyOfRange(left, 1, left.length);
              }
      
              while (right.length > 0) {
                  result[i++] = right[0];
                  right = Arrays.copyOfRange(right, 1, right.length);
              }
      
              return result;
          }
      
      }
      

      4.算法分析

      歸并排序是一種穩(wěn)定的排序方法。和選擇排序一樣,歸并排序的性能不受輸入數(shù)據(jù)的影響,但表現(xiàn)比選擇排序好的多,因?yàn)槭冀K都是O(nlogn)的時(shí)間復(fù)雜度。代價(jià)是需要額外的內(nèi)存空間。

      posted @ 2022-03-16 13:00  HZX↑  閱讀(47)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产成人av性色在线影院| 国产精品一码二码三码四码| av午夜福利一片免费看久久| 99精品国产一区二区三| 国产熟女一区二区三区蜜臀| 国产综合精品91老熟女| 有码中文字幕一区三区| 正镶白旗| 少妇无码av无码专区| 福利在线视频一区二区| 欧美日韩精品一区二区三区在线| 久久www免费人成看片中文| 亚洲综合av一区二区三区| 91密桃精品国产91久久| 亚洲人成小说网站色在线 | 久久人妻少妇嫩草av无码专区| 亚洲国语自产一区第二页| 中文字幕人妻av12| 2022最新国产在线不卡a| 91老肥熟女九色老女人| 国产亚洲一区二区三区啪| 香蕉久久国产精品免| 亚洲综合精品第一页| 亚洲av色香蕉一区二区| 人妻偷拍一区二区三区| 亚洲国产成人资源在线| 天天爽天天摸天天碰| 国产成人8x视频一区二区| 人妻少妇精品视频专区| 国产美女遭强高潮免费| 国产中文字幕精品视频| 国产69久久精品成人看| 午夜一区欧美二区高清三区| 日韩精品国产二区三区| 疯狂的欧美乱大交| 亚洲精品人妻中文字幕| 国产精品中文字幕自拍| 亚洲国产aⅴ成人精品无吗| 免费看亚洲一区二区三区| 东京热人妻丝袜无码AV一二三区观| 新源县|