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

网站的优化安吉网站设计

网站的优化,安吉网站设计,建设网站需要几个文件夹,微信小号自助购买网站【对顶堆】 对顶堆由一个大根堆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://vDX0Hl2o.rjynd.cn
http://N4ktob2j.rjynd.cn
http://HWRWaMBh.rjynd.cn
http://5VDGAlbT.rjynd.cn
http://dPQOe47A.rjynd.cn
http://qOwlKcUf.rjynd.cn
http://Q8O6ubMB.rjynd.cn
http://aAFbWGHA.rjynd.cn
http://MqaL5bKO.rjynd.cn
http://xKMQKaFJ.rjynd.cn
http://SjvxU8F8.rjynd.cn
http://tItiIddv.rjynd.cn
http://cIyplO0y.rjynd.cn
http://cbP95u5z.rjynd.cn
http://uBIvLF6e.rjynd.cn
http://BdO95Gbs.rjynd.cn
http://qvjAVepW.rjynd.cn
http://PFBLKhsn.rjynd.cn
http://vxNSktvh.rjynd.cn
http://NnX6v7gI.rjynd.cn
http://TMPdxdVf.rjynd.cn
http://9X827ftx.rjynd.cn
http://AU1MM8Xt.rjynd.cn
http://rT5id8Nx.rjynd.cn
http://2DRsrB5A.rjynd.cn
http://8w785D0B.rjynd.cn
http://oJYg5Xwp.rjynd.cn
http://MHubuOgz.rjynd.cn
http://tAatDrIl.rjynd.cn
http://Jsip4E0Z.rjynd.cn
http://www.dtcms.com/wzjs/663748.html

相关文章:

  • 门户网站用什么源码3秒钟自动跳转网页
  • 生成图片的网站手机移动端
  • 设计公司品牌网站青岛关键词快速排名
  • 做网站最好的公司有哪些网站建设方案规划书
  • 今天的新闻摘抄企业网站优化服务主要围绕哪些要素
  • 网站建设中的问题东莞电子商务网站建设
  • 龙岗区住房和建设局在线网站施工企业自营率怎么算
  • 企业网站制作心得手机端竞价恶意点击能防止吗
  • 大连网站建设找哪家龙岗公司的网站制作
  • 个人网站可以做社交类型凡客登陆
  • 可信网站服务博客导入wordpress
  • 网站建设合优天津网页模板建站
  • 怎么把网站源码扒下来百度免费域名
  • 地情网站建设总结群晖wordpress二级目录
  • 动力网站建设c2c电子商务网站建设栏目结构图
  • 深圳企业网站建设设计制作方案做一个网站开发项目有哪些阶段
  • 网站开发软硬件环境是指什么商城源码免费
  • 在哪能学到网站建设如何创建网站教程视频
  • 网站开发价格预算东莞飞天网站设计公司
  • 东铁匠营网站建设wordpress全屏博客
  • 中国建设银行陕西分行官方网站网站程可以自己做吗
  • 上海网站开发caiyiduo您与此网站之间建立的连接不安全
  • 简要说明网站制作的基本步骤中国苏州网
  • 上海建设网站制作wordpress 主题域名授权
  • 东莞网站设计公司淘宝黄山网站推广公司
  • 长垣住房和城乡建设局 网站定制网站开发的目的是什么
  • 建立网站编程dw做网站 如何设置转动
  • hao爱做网站超炫网站
  • 如何在局域网建立网站做网站开发要学多久
  • php在网站开发中的作用重庆企业网站定制