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

微信网站api域名注册官网免费

微信网站api,域名注册官网免费,安庆公司做网站,对接标准做好门户网站建设大顶堆小顶堆(或大根堆小根堆) 利用大顶堆实现优先队列,所谓大顶堆,容器内部元素是有序的,而且是按从大到小排序的(小顶堆刚好相反,从小到大)。容器只有一个出口一个入口&#xff0…

大顶堆小顶堆(或大根堆小根堆)

利用大顶堆实现优先队列,所谓大顶堆,容器内部元素是有序的,而且是按从大到小排序的(小顶堆刚好相反,从小到大)。容器只有一个出口一个入口,将元素放进去之后大顶堆会自动对其进行排序,大顶堆最大的元素放在对顶(小顶堆最小元素在对顶),堆顶元素弹出后,下一个最大(或最小)的元素作堆顶。

c++的实现如下:

//构造一个空的优先队列priority_queue<int>head;//(c++默认为大顶堆)
//构造一个大顶堆priority_queue<int, vector<int>,less<int>> max_head;
//构造一个小顶堆priority_queue<int, vector<int>,greater<int>>min_head;
//第一个参数为要插入的元素类型,第二个参数为实现优先队列的底层容器,
//第三个参数为比较规则,less为大顶堆的规则,greater为小顶堆,
//系统自动实现,也可以自定义排序规则
//后两个可以省略,第一个参数不能省略自定义排序规则:
static bool cmp(const pair<int,int>& a, const pair<int,int>& b) {return a.first == b.first ? (a.second - b.second) : (a.first - b.first);
}priority_queue<pair<int,int>, vector<pair<int,int>>,cmp>pri_que;
//优先队列中存放的是一对整数,按照第一个元素升序排序,如果第一个元素相同比较第二个元素  
常见成员函数:
boolemploy()

返回值为true说明队列为空。

intsize()

返回优先队列里的元素数量。

voidpop()

删除队列顶部元素。

inttop()

返回队列顶部元素,但不删除该元素。

voidpush(int value)

将元素value插入队列中。

java的实现方法:

PriorityQueue<Integer>head = new PriorityQueue<>();//注意java默认是小顶堆
//如果需要大顶堆需要自己提供比较器
class MyCmp implements Comparator<Integer>{@Overridepublic int compare(Integer o1,Integer o1) {return o2 - o1;}
}
PriorityQueue<Integer>head = new PriorityQueue<>(new MyCmp);
    • 一些常用的方法:
    • booleanadd(E e)

      将指定的元素插入到此优先级队列中。

      voidclear()

      从此优先级队列中删除所有元素。

      booleancontains(Object o)

      如果此队列包含指定的元素,则返回 true

      Epeek()

      检索但不删除此队列的头,如果此队列为空,则返回 null

      Epoll()

      检索并删除此队列的头,如果此队列为空,则返回 null

      booleanremove(Object o)

      从该队列中删除指定元素的单个实例(如果存在)。

      intsize()

      返回此集合中的元素数。

      Object[]toArray()

      返回一个包含此队列中所有元素的数组。

总结

优先队列是一种比较重要的数据结构,可以以O(logn)的效率来增减元素,主要运用于排序。

http://www.hkea.cn/news/814480/

相关文章:

  • 香港疫情最新消息今天深圳seo教程
  • 维护一个网站难吗免费发布外链
  • 南安市网站建设成都今天重大新闻事件
  • 网站后台补丁如何做软文有哪几种类型
  • 网站建设的费用包括哪些内容资讯门户类网站有哪些
  • 一站式服务图片制作网页的基本步骤
  • 个人网站建设网站网络网站推广
  • asp做的药店网站模板北京百度快照推广公司
  • 网站建设泉州效率网络seo的优化策略有哪些
  • 页网站无锡网站制作推广
  • 一流的龙岗网站建设目前最靠谱的推广平台
  • 企业营销型网站费用短视频推广引流
  • 化妆品可做的团购网站有哪些seo研究中心南宁线下
  • 网站空间域名是什么做电商必备的几个软件
  • 软件公司运营是做什么的seo公司运营
  • 专业云南做网站福州短视频seo服务
  • 网站开发技术期中试题电商培训机构排名
  • 网站设计连接数据库怎么做如何进行百度推广
  • 日本网站图片做淘宝代购网络营销促销方案
  • 网站开发导航栏网站制作的费用
  • 盐城网站设计网站流量统计工具
  • 网站上如何做相关推荐郑州建网站的公司
  • 漂亮大气的装潢室内设计网站模板 单页式html5网页模板包前端优化
  • 论坛网站开发开题报告青岛百度推广多少钱
  • 文山做网站如何优化百度seo排名
  • 上海展陈设计公司有哪些成都网站seo性价比高
  • 小韩网站源码360广告投放平台
  • 网站地图的重要性短信广告投放软件
  • 搭建直播网站需要怎么做教育培训机构平台
  • 濮阳网站网站建设网络营销策划是什么