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

十种人不适合学建筑seo狂人

十种人不适合学建筑,seo狂人,网站建设文化服务公司,php做的汽车销售网站一、了解 priority_queue 用于实现优先队列(堆)。它基于 std::vector(默认使用vector) 或 std::deque 实现,默认情况下是一个最大堆(即队首元素是最大的元素)。 对于异常处理,空队…

一、了解

priority_queue 用于实现优先队列(堆)。它基于 std::vector(默认使用vector) 或 std::deque 实现默认情况下是一个最大堆(即队首元素是最大的元素)

  • 对于异常处理,空队列一般自定义,但是priority_queue 会使用std::out_of_range异常
  • 时间复杂度
    • 插入操作:O(log n)
    • 删除操作:O(log n)
    • 访问队首元素:O(1)

常见问题

  • 1、如何从给定的无序数组中找到第 K 大的元素?

    • 参考题目力扣215数组中的第k个最大元素
      在这里插入图片描述
  • 2、实现一个优先队列,并解释它的插入和删除操作的时间复杂度。

    • 优先队列是堆结构
    • 插入:把新元素放到最后,再与其他元素对比后上浮到合适位置。
    • 删除:删除的是堆顶。删除后,把最后的元素移到最上面,然后再下浮到合适位置。
    • 插入操作时间复杂度:O(log n)
    • 删除操作时间复杂度:O(log n)
  • 3、什么是堆排序?它的时间复杂度和空间复杂度是多少?

    • 堆排序:通过构建堆,将数组中的元素按升序或降序排列。
    • 时间复杂度:O(n log n) 空间复杂度:O(1)(就地排序)
  • 4、二叉堆和斐波那契堆有什么区别?它们的操作的时间复杂度有何不同?

    • 二叉堆和斐波那契堆主要区别在于他们的操作有不同时间复杂度。
    • 二叉堆:插入和删除的时间复杂度是O(log n)
    • 菲波那切堆:插入和减小都是O(1),删除最小元素是O(log n)但是均摊时间复杂度。
  • 5、如何在 O(n) 时间复杂度内构建一个堆?

    • 找到最后一个非叶子节点:最后一个非叶子节点的索引为 n/2 - 1(其中 n 是数组的长度)
    • 从后向前调整:从最后一个非叶子节点开始,向前遍历每个节点对每个节点执行“下沉”操作,确保以该节点为根的子树满足堆的性质。

//使用的头文件

#include<queue>

二、初始化

priority< typename> name;
priority<typename,sequence >name;

priority_queue<int>q1;//最大堆,堆顶是最大值
priority_queue<int,vector<int>>q2;//最小堆,堆顶是最小值

三、常用函数

1、总结

在这里插入图片描述

2、例子

首先是这里用到的头文件

#include< iostream>
#include< cstdio>
#include< queue>
using namespace std;

2.1、插入操作

  • q.push(value)
int main(){priority_queue<int>q1;//最大堆,堆顶是最大值q1.push(1);q1.push(4);q1.push(2);q1.push(3);while(q1.empty()==0){cout<<q1.top()<<" ";//4 3 2 1q1.pop();}
}
  • q.pop()
int main(){priority_queue<int>q1;//最大堆,堆顶是最大值q1.push(1);q1.push(4);q1.push(2);q1.push(3);q1.pop();while(q1.empty()==0){cout<<q1.top()<<" ";//3 2 1q1.pop();}
}

2.2、访问操作

  • q.top()
int main(){priority_queue<int>q1;//最大堆,堆顶是最大值q1.push(1);q1.push(4);q1.push(2);q1.push(3);printf("%d",q1.top());//4
}

2.3、容量操作

  • q.empty()

int main(){priority_queue<int>q1;//最大堆,堆顶是最大值q1.push(1);q1.push(4);q1.push(2);q1.push(3);if(q1.empty()==1){cout<<"q1是空的"<<endl;}else{cout<<"q1不是空的"<<endl;}
}
  • q.size()
priority_queue<int>q;
q.push(1);
int num =q.size();
cout<<num<<endl;//1
http://www.dtcms.com/wzjs/350588.html

相关文章:

  • asp net mvc做网站如何刷关键词指数
  • 做兼职那个网站靠谱吗站长工具综合权重查询
  • 做网站番禺如何创建自己的网站
  • 网站开发美学seo外链建设的方法有
  • 做网站按什么收费多少钱搜索关键词排名优化
  • 网站怎么做关键词搜索排面搜索
  • 赣州建设网站公司广州头条新闻最新
  • 餐饮品牌推广方案杭州关键词推广优化方案
  • 网站联盟系统站长工具网
  • 网站登录破解网站关键词
  • 对比的网站建设找合作项目app平台
  • 济南槐荫区做网站的百度关键词快速排名
  • 世界工厂采购网站南宁网站建设优化服务
  • 娱乐新闻主题wordpress谷歌seo网络公司
  • 郑州模板建站哪家好武汉好的seo优化网
  • 响应式网站自助建设平台seoul是啥意思
  • 评价一个网站设计的好坏2020最成功的网络营销
  • 织梦网站自助申请友链代码拓客app下载
  • 建设厅网站密码找回武汉网站设计
  • 沈阳做平板网站微信管理软件哪个最好
  • 招聘网站制作公司农产品网络营销策划书
  • 政务网站建设 发言最近一周新闻热点回顾
  • 网站编辑做啥都他达拉非
  • 浙江职业能力建设网百度推广怎么优化
  • 贵阳网站托管有道搜索引擎入口
  • 制作企业网页企业网站seo推广
  • 制作网页时怎么插入图片湖南竞价优化哪家好
  • 大连网站制作的公司广告关键词
  • 建网站先要申请网址吗他达拉非片正确服用方法
  • 徐汇科技网站建设国内比百度好的搜索引擎