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

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

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

      【算法】堆排序(Heap Sort)(七)

      堆排序(Heap Sort)

      堆排序(Heapsort)是指利用堆這種數(shù)據結構所設計的一種排序算法。堆積是一個近似完全二叉樹的結構,并同時滿足堆積的性質:即子結點的鍵值或索引總是小于(或者大于)它的父節(jié)點。堆排序可以說是一種利用堆的概念來排序的選擇排序。分為兩種方法:

      1. 大頂堆:每個節(jié)點的值都大于或等于其子節(jié)點的值,在堆排序算法中用于升序排列;
      2. 小頂堆:每個節(jié)點的值都小于或等于其子節(jié)點的值,在堆排序算法中用于降序排列;

      堆排序的平均時間復雜度為 Ο(nlogn)。

      1.算法描述

      • 將初始待排序關鍵字序列(R1,R2….Rn)構建成大頂堆,此堆為初始的無序區(qū);
      • 將堆頂元素R[1]與最后一個元素R[n]交換,此時得到新的無序區(qū)(R1,R2,……Rn-1)和新的有序區(qū)(Rn),且滿足R[1,2…n-1]<=R[n];
      • 由于交換后新的堆頂R[1]可能違反堆的性質,因此需要對當前無序區(qū)(R1,R2,……Rn-1)調整為新堆,然后再次將R[1]與無序區(qū)最后一個元素交換,得到新的無序區(qū)(R1,R2….Rn-2)和新的有序區(qū)(Rn-1,Rn)。不斷重復此過程直到有序區(qū)的元素個數(shù)為n-1,則整個排序過程完成。

      2.動圖演示


      3.代碼實現(xiàn)

      //javascript實現(xiàn)
      var len;    // 因為聲明的多個函數(shù)都需要數(shù)據長度,所以把len設置成為全局變量
      
      function buildMaxHeap(arr) {   // 建立大頂堆
          len = arr.length;
          for (var i = Math.floor(len/2); i >= 0; i--) {
              heapify(arr, i);
          }
      }
      
      function heapify(arr, i) {     // 堆調整
          var left = 2 * i + 1,
              right = 2 * i + 2,
              largest = i;
      
          if (left < len && arr[left] > arr[largest]) {
              largest = left;
          }
      
          if (right < len && arr[right] > arr[largest]) {
              largest = right;
          }
      
          if (largest != i) {
              swap(arr, i, largest);
              heapify(arr, largest);
          }
      }
      
      function swap(arr, i, j) {
          var temp = arr[i];
          arr[i] = arr[j];
          arr[j] = temp;
      }
      
      function heapSort(arr) {
          buildMaxHeap(arr);
      
          for (var i = arr.length-1; i > 0; i--) {
              swap(arr, 0, i);
              len--;
              heapify(arr, 0);
          }
          return arr;
      }
      
      //java實現(xiàn)
      public class HeapSort implements IArraySort {
      
          @Override
          public int[] sort(int[] sourceArray) throws Exception {
              // 對 arr 進行拷貝,不改變參數(shù)內容
              int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
      
              int len = arr.length;
      
              buildMaxHeap(arr, len);
      
              for (int i = len - 1; i > 0; i--) {
                  swap(arr, 0, i);
                  len--;
                  heapify(arr, 0, len);
              }
              return arr;
          }
      
          private void buildMaxHeap(int[] arr, int len) {
              for (int i = (int) Math.floor(len / 2); i >= 0; i--) {
                  heapify(arr, i, len);
              }
          }
      
          private void heapify(int[] arr, int i, int len) {
              int left = 2 * i + 1;
              int right = 2 * i + 2;
              int largest = i;
      
              if (left < len && arr[left] > arr[largest]) {
                  largest = left;
              }
      
              if (right < len && arr[right] > arr[largest]) {
                  largest = right;
              }
      
              if (largest != i) {
                  swap(arr, i, largest);
                  heapify(arr, largest, len);
              }
          }
      
          private void swap(int[] arr, int i, int j) {
              int temp = arr[i];
              arr[i] = arr[j];
              arr[j] = temp;
          }
      
      }
      
      posted @ 2022-03-16 22:18  HZX↑  閱讀(58)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中文字幕久久国产精品| 蜜臀91精品国产高清在线| 2021亚洲va在线va天堂va国产 | 丰腴饱满的极品熟妇| 国产麻豆放荡av激情演绎| 无码人妻一区二区三区兔费| 国产在线播放专区av| 一区天堂中文最新版在线| 一本久道中文无码字幕av| 97人妻无码一区| bt天堂新版中文在线| 自偷自拍亚洲综合精品| 精品少妇av蜜臀av| 亚洲日韩精品无码av海量| 亚洲精品美女一区二区| 国产成人精品97| 国内精品自产拍在线播放| 免费无码无遮挡裸体视频在线观看| 亚洲熟妇自偷自拍另类 | 欧美丰满熟妇vaideos| 俄罗斯少妇性XXXX另类| 熟女精品视频一区二区三区| 久女女热精品视频在线观看| 国产精品福利自产拍久久| 好紧好滑好湿好爽免费视频| 丝袜高潮流白浆潮喷在线播放| 粉嫩蜜臀av一区二区绯色| а天堂中文最新一区二区三区| 国产精品久久一区二区三区| 北岛玲中文字幕人妻系列| 日韩精品一区二区三区蜜臀 | 四虎国产精品永久在线下载| 久久精品国产再热青青青| 亚洲熟妇一区二区三个区| 竹北市| 成人亚欧欧美激情在线观看| 精品国产女同疯狂摩擦2| 国产一区视频一区欧美| 国产成AV人片久青草影院| 色丁香一区二区黑人巨大| 亚洲色欲色欲WWW在线丝|