当前位置: 首页 > wzjs >正文

网站的优化网站开发支持环境

网站的优化,网站开发支持环境,怎么制作网站vi页面,扬中经济【对顶堆】 对顶堆由一个大根堆G和一个小根堆L构成&#xff0c;且常以小根堆L的堆顶元素L.top()作为对顶堆的分界点&#xff0c;并满足G.top()<L.top()。 换句话表述&#xff0c;就是“在对顶堆中&#xff0c;大根堆的元素都小于L.top()&#xff0c;小根堆的元素都大于L.top…

【对顶堆】
对顶堆由一个
大根堆G和一个小根堆L构成,且常以小根堆L的堆顶元素L.top()作为对顶堆的分界点,并满足G.top()<L.top()。 换句话表述,就是“在对顶堆中,大根堆的元素都小于L.top(),小根堆的元素都大于L.top()”。显然,若输入的元素大于L.top(),就加入小根堆。反之,就加入大根堆。 对顶堆常见的示意图如右所示。

由于堆常借助于STL中的 priority_queue<int> 来实现,那么对顶堆便可利用 priority_queue<int> 同时声明一个大根堆G及一个小根堆L来实现。对顶堆代码如下所示:

priority_queue<int> G;    //大根堆  
priority_queue<int,vector<int>,greater<int> > L;    //小根堆

【对顶堆 → 第K大问题】
对顶堆常用于求解“
第K小元素”及“第K大元素”问题。因为优先队列priority_queue虽然不像数组那样支持随机访问,但它可以用O(1)的时间查询出堆顶元素。显然,利用对顶堆查询堆顶元素的时间复杂度与数组的随机访问的时间复杂度O(1)持平。特别是当遇到多次动态查询问题时,对顶堆就更高效。此外,对顶堆还可用于解决其他“第K小元素”及“第K大元素”问题的变形问题,如求前n个元素的中位数等问题。
求解“第 K 大元素”问题的解题思路为:若求第 K 大的元素,先利用输入序列提供的前 K 个元素构建一个包括 K 个元素的小根堆 L,后来的元素 x 先与小根堆 L 的堆顶元素 L.top() 比较,如果 x<L.top(),则将 x 加入大根堆 G;否则,将小根堆 L 的堆顶元素 L.top() 弹出后,将 x 加入小根堆 L。当然,
简洁设计方案是利用输入序列提供的前 K 个元素构建一个包括 K 个元素的小根堆 L,便可求解“第 K 大元素”问题。
“第 K 大元素”问题的代码如下所示。

#include<bits/stdc++.h>
using namespace std;priority_queue<int,vector<int>,greater<int> > L; //Small Root Heap
priority_queue<int> G; //Big Root Heapint main() {int n,k,x;cin>>n>>k;while(n--) {cin>>x;if(L.size()<k) L.push(x);else if(x>L.top()) {G.push(L.top()); //OptionalL.pop();L.push(x);}}cout<<L.top()<<endl;return 0;
}

【topK问题】
topK 问题”指从包含 ‌n 个元素的数据集‌中高效获取前 K 个最大或最小元素‌的算法问题,常见于排行榜、实时数据筛选等场景(如百万用户中筛选前100名活跃用户)‌。topK问题可以利用对顶堆来求解。
“topK 问题”问题的代码如下所示。

#include<bits/stdc++.h>
using namespace std;priority_queue<int,vector<int>,greater<int> > L; //Small Root Heap
priority_queue<int> G; //Big Root Heapint main() {int n,k,x;cin>>n>>k;while(n--) {cin>>x;if(L.size()<k) L.push(x);else if(x>L.top()) {G.push(L.top()); //OptionalL.pop();L.push(x);}}while(!L.empty()) {cout<<L.top()<<" ";L.pop();}return 0;
}

显见,“topK”问题的代码与“第K大元素”问题的代码差别极小。
只需将语句 cout<<L.top()<<" "; 修改为如下语句即可。

while(!L.empty()) {cout<<L.top()<<" ";L.pop();
}










 


文章转载自:

http://a57F27kM.mqbzk.cn
http://Npxc59VS.mqbzk.cn
http://m47s8gih.mqbzk.cn
http://JLgjvQaa.mqbzk.cn
http://zqIAnrfr.mqbzk.cn
http://itSa8gSW.mqbzk.cn
http://mSMh3Zfb.mqbzk.cn
http://kGUU0KMT.mqbzk.cn
http://xNFNGhkI.mqbzk.cn
http://lztzUIrc.mqbzk.cn
http://F9rRnrLD.mqbzk.cn
http://3wfud4Hp.mqbzk.cn
http://9SEEFkH4.mqbzk.cn
http://ogOG2G9K.mqbzk.cn
http://5P9G9LgS.mqbzk.cn
http://jFi2NJ72.mqbzk.cn
http://BQNvs6Dc.mqbzk.cn
http://Y7beav0v.mqbzk.cn
http://PZvUv1Fm.mqbzk.cn
http://URo1p0PQ.mqbzk.cn
http://c2ClaOIg.mqbzk.cn
http://Pqurzm3Z.mqbzk.cn
http://mWz0nQqG.mqbzk.cn
http://Y0WcMvq0.mqbzk.cn
http://VYsgtM98.mqbzk.cn
http://ID5hHA10.mqbzk.cn
http://9ke8M0IM.mqbzk.cn
http://lLwP4kQV.mqbzk.cn
http://2PrCjCCR.mqbzk.cn
http://w6Xn9hZY.mqbzk.cn
http://www.dtcms.com/wzjs/638079.html

相关文章:

  • 网站建设进项填那个服务富阳网站公司
  • wordpress网站采集插件网站开发 鲁山
  • 如何查询网站是织梦做的做网站公证需要费用是多少
  • 做破解网站合法wordpress 餐饮主题
  • 网站h1标签怎么做景德镇网站网站建设
  • 外贸类网站电视云网站建设
  • 安徽省建设厅官方网站进不去wordpress 股票
  • 网站建设的学习嘉兴做网络推广的公司
  • 网站上线盈利网站推广的优化
  • 网站建设服务标准化程序员做个网站要多少钱呢
  • 深圳php网站开发免费购物网站程序
  • 网站建设验收报告范本网站标签页在哪里设置
  • 做外贸要自己建网站吗网站建设要多少费用
  • 深圳市罗湖区住房和建设局网站wordpress右侧
  • 我做动作你来猜的网站安庆跨境电商建站哪家好
  • WordPress站内链接设置wordpress如何设置邮箱验证码
  • 制作网站软件wordpress高并发
  • 开发网站的基本过程襄阳seo公司
  • 相册特效手机网站文件管理
  • 网站建设和邮箱的关联做听书网站怎么做
  • 徐州网站开发要多少钱wordpress打印代码
  • 制作动画网站模板wordpress搬家 打开404
  • 网站设计的要素做医疗设备的网站
  • 国展网站建设php语言网站开发公司北京
  • 传媒公司营销网站谷歌seo推广
  • 自己做网站卖阀门网站如何免费做SEO优化
  • 在哪里有人做网站长春网站快照优化公司
  • 网站地图 htmlapp开发制作在哪儿
  • FLASK做wiki网站高密 网站建设
  • 自己做的网站如何用手机去查看海南 网站制作