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

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

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

      二叉堆(優先隊列)

      堆是一種在頻繁插入刪除情形下,仍能高效獲取序列最值的數據結構。堆頂為樹根,始終保持所有元素的最優值。堆總是一棵完全二叉樹,稱為二叉堆,因此其存儲結構中定位其子節點無需left和right。堆可分類為大根堆、小根堆。

      在堆中的任意節點,其總<=(大根堆,less)或>=(小根堆,greater)其父節點的值。下面以小根堆為例。

      堆的調整( O ( log ? 2 n ) O(\log_2n) O(log2?n))

      上浮(堆底插入元素)

      extern int heap[MAX],cnt;//cnt:堆底元素下標
      void push(int x){
          heap[++cnt]=x;
          int i=cnt;//當前工作指針,上浮調整堆底元素
          while(i>1&&heap[i]<heap[i/2]){//大根堆為>
              swap(heap[i],heap[i/2]);
              i=i/2;
          }
      }
      

      下沉(彈出堆頂元素)

      extern int heap[MAX],cnt;//cnt:堆底元素下標
      void pop(){
          swap(heap[1],heap[cnt--]);//交換堆頂元素與堆底元素
          int i=1;//當前工作指針,下沉調整堆頂元素
          while(i<<1<=cnt){//確保至少有左子結點(完全二叉樹性質)
              int son=i<<1;
              if(son<cnt&&heap[son+1]<heap[son]) son++;//左右子節點中取最小的,充分確保可下沉,大根堆的第2個條件為>
              if(heap[son]<heap[i]) swap(heap[son],heap[i]),i=son;//大根堆為>
              else break;
          }
      }
      

      堆的構建

      向上調整建堆( O ( n log ? 2 n ) O(n\log_2n) O(nlog2?n),在線)

      對每個元素都調用 p u s h push push函數,共調用 n n n次。

      向下調整建堆(遍歷堆化, O ( n ) O(n) O(n),離線)

      算法流程:從最后一個葉子結點的父節點開始,倒序遍歷序列,利用堆的自相似性,每次執行下沉操作。

      extern heap[MAX],cnt;
      void shiftdown(int j){
          int i=j;
          while(i<<1<=cnt){
              int son=i<<1;
              if(son<cnt&&heap[son+1]<heap[son]) son++;
              if(heap[son]<heap[i]) swap(heap[son],heap[i]),i=son;
              else break;
          }
      }
      void build(){
          for(int i=cnt/2;i>=1;i--){
              shiftdown(i);
          }
      }
      

      STL(優先隊列)

      堆可以用于實現優先隊列,C++的STLpriority_queue即為優先隊列,其獲取最值的功能與堆相同。

      應用——堆排序( O ( n log ? 2 n ) O(n\log_2n) O(nlog2?n))

      算法流程:建堆后,執行 n n n p o p pop pop操作。

      posted @ 2024-08-13 17:44  椰蘿Yerosius  閱讀(13)  評論(0)    收藏  舉報  來源
      主站蜘蛛池模板: 欧洲人妻丰满av无码久久不卡| 国产精品乱一区二区三区| 国产又黄又爽又不遮挡视频| 精品天堂色吊丝一区二区| 4hu四虎永久在线观看| 当雄县| 国产一区二区不卡91| 精品国偷自产在线视频99| 99热门精品一区二区三区无码| 日韩中文字幕国产精品| 欧美国产日韩久久mv| 国产在线超清日本一本| 长岭县| 亚洲精品乱码久久久久久按摩高清| 偷炮少妇宾馆半推半就激情| 中文字幕人妻精品在线| 伊人春色激情综合激情网| 国产国产人免费人成免费| 年轻女教师hd中字3| 久久婷婷综合色丁香五月| 狠狠综合久久av一区二| 精品视频一区二区| 人妻中文字幕亚洲精品| 亚洲一区二区啊射精日韩| 亚洲欧美日韩第一页| 太白县| 国产女人在线视频| 欧美成人精品一区二区三区免费| 男女做aj视频免费的网站| 免费观看激色视频网站| 亚洲av激情久久精品人| 四虎成人在线观看免费| 亚洲成av人在线播放无码| 久久国产成人av蜜臀| 欧美人与性动交ccoo| 亚洲国产av剧一区二区三区| 国产成人8X人网站视频| 婷婷丁香五月深爱憿情网| 日韩在线视频一区二区三| 少妇人妻偷人一区二区| 中文字幕亚洲综合久久青草|