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

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

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

      【數據結構】 堆(二叉堆)詳解

      定義:

      堆的底層數據結構是樹,一般不引起歧義的情況下,堆指的是二叉堆,其底層數據結構是完全二叉樹,堆分為大根堆和小根堆,大根堆的每個節點的父親都大于當前節點,小根堆反之,本文以小根堆為例

      二叉堆插入

      思路:將要插入的樹放在數組最后,令數組原來的大小為 \(size\) ,堆數組的名為 \(heap\) ,則 \(heap[++size]=x\) ,其中 \(x\) 為要插入的數字,之后將插入的數字不斷向上調整即可(如圖)

      CODE:

      void put(int x){
      	heap[++size]=x;
      	int now=size;
      	while (now>1&&heap[now/2]>heap[now]){
      		swap(heap[now/2],heap[now]);
      		now/=2;
      	}
      }
      

      時間復雜度: \(O(\log n)\)

      二叉堆刪除

      思路:將要刪除的元素與最后一個元素交換,同時 \(size--\) ,再將這個位置的樹向下調整
      CODE:

      void del(int idx){
      	swap(heap[size],heap[idx]);
      	size--;
      	while (idx*2<=size){
      		int t=idx;
      		idx*=2;
      		if (idx+1<=size&&heap[idx]>heap[idx+1]) idx++;
      		if (heap[idx]>=heap[t]) return ;
      		swap(heap[t],heap[idx]);
      	}
      }
      

      時間復雜度: \(O(\log n)\)

      例題

      [NOIP2004 提高組] 合并果子
      例題代碼:

      點擊查看代碼
      #include<cstdio>
      #include<algorithm>
      using namespace std;
      
      int n,heap[10005],size,ans;
      
      void put(int x){
      	heap[++size]=x;
      	int now=size;
      	while (now>1&&heap[now/2]>heap[now]){
      		swap(heap[now/2],heap[now]);
      		now/=2;
      	}
      }
      
      void del(int idx){
      	swap(heap[size],heap[idx]);
      	size--;
      	while (idx*2<=size){
      		int t=idx;
      		idx*=2;
      		if (idx+1<=size&&heap[idx]>heap[idx+1]) idx++;
      		if (heap[idx]>=heap[t]) return ;
      		swap(heap[t],heap[idx]);
      	}
      }
      
      int main(){
      	scanf("%d",&n);
      	for (int i=1;i<=n;i++){
      		int tmp;
      		scanf("%d",&tmp);
      		put(tmp);
      	}
      	for (int i=1;i<n;i++){
      		int a=heap[1];
      		del(1);
      		int b=heap[1];
      		del(1);
      		put(a+b);
      		ans+=a+b;
      	}
      	printf("%d",ans);
      	return 0;
      }
      
      posted @ 2024-12-09 13:56  ZYStream  閱讀(98)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产高清在线男人的天堂| 韩国无码AV片午夜福利| 日韩精品区一区二区三vr| 在线高清免费不卡全码| 精品国产成人网站一区在线| 狠狠色综合播放一区二区| 专栏| 97精品伊人久久久大香线蕉| 中文字幕有码无码AV| 鄂伦春自治旗| 国产精品偷伦费观看一次| 国产成人AV性色在线影院| 亚洲综合成人av在线| 少妇无码av无码专区在线观看| 虎白女粉嫩尤物福利视频| 粉嫩在线一区二区三区视频| 亚洲高潮喷水无码AV电影| 亚洲国产精品日韩在线 | 久久久久久性高| 日韩无矿砖一线二线卡乱| 国产目拍亚洲精品二区| 亚洲成a∨人片在线观看不卡| 精品偷自拍另类精品在线| 国产AV福利第一精品| 蜜桃无码一区二区三区| 午夜综合网| 亚洲VA久久久噜噜噜久久无码| 国产v综合v亚洲欧美大天堂| 国产成人精品无人区一区| 国产内射性高湖| 一区二区三区午夜福利院| 国产在线精品一区二区三区| 俄罗斯美女真人性做爰| 亚洲男人第一无码av网站| 2021精品亚洲中文字幕| 亚洲精品人妻中文字幕| 成人啪精品视频网站午夜| 凉城县| 国产美女遭强高潮免费| 欧美国产日产一区二区| 保德县|