优先队列(堆)priority queue

优先队列(堆)priority queue优先队列(堆)priorityqueue完全二叉树:除了最底层都被元素填满堆序性:除根节点,最小堆每个节点父亲的Key小于等于该节点的Key,最大堆反之优先队列的申明structHeapStruct;typedefstructHeapStruct*PriorityQueue;PriorityQueueInitialize(intMaxElements);void…

大家好,又见面了,我是你们的朋友全栈君。

优先队列(堆)priority queue

  • 完全二叉树:除了最底层都被元素填满
  • 堆序性:除根节点,最小堆每个节点父亲的Key小于等于该节点的Key,最大堆反之

优先队列的申明

struct HeapStruct;
typedef struct HeapStruct* PriorityQueue;

PriorityQueue Initialize (int MaxElements);
void Destroy (PriorityQueue H);
void MakeEmpty (PriorityQueue H);
void Insert (ElementType X, PriorityQueue H);
ElementType DeleteMin (PriorityQueue H);
ElementType FindMin (PriorityQueue H);
int IsEmpty (PriorityQueue H);
int IsFull (PriorityQueue H);

struct HeapStruct
{
	int Capacity;
	int size;
	ElementType* Elements;
}
Insert

插入操作,将新增元素放到最后面,比较其与父节点,进行上滤,O(logN)

DeleteMin

删除操作,删除根节点元素后,进行下滤,O(logN)

FindMin

根元素即为所求,O(1)

应用

求第k大的数,求最大前k个数,klogN

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160504.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python找出肇事者_python100例详解

    python找出肇事者_python100例详解抓交通肇事犯1.问题描述一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。甲说:牌照的前两位数字是相同的:乙说:牌照的后两位数字是相同的,但与前两位

    2022年7月29日
    7
  • java tess4j ddl_tess4j jna dll报错,求助

    java tess4j ddl_tess4j jna dll报错,求助使用最新的tess4j3.3.0包,这个版本的dll文件应该是集成在jar包里面的,环境是win10,vc环境健全,使用eclips代码:importjava.io.File;importnet.sourceforge.tess4j.ITesseract;importnet.sourceforge.tess4j.Tesseract;importnet.sourceforge.tess4j…

    2022年5月27日
    36
  • 个人计算机安全

    个人计算机安全

    2022年3月12日
    34
  • 支持向量机的基本思想和原理_人民战争思想的基本理论内容

    支持向量机的基本思想和原理_人民战争思想的基本理论内容一、支持向量机:SVM即支持向量机(SupportVectorMachine),是有监督学习算法的一种,用于解决数据挖掘或模式识别领域中数据分类问题。二、基本原理:SVM算法即寻找一个分类器使得超平面和最近的数据点之间的分类边缘(超平面和最近的数据点之间的间隔被称为分类边缘)最大,对于SVM算法通常认为分类边缘越大,平面越优,通常定义具有“最大间隔”的决策面就是S…

    2022年10月20日
    0
  • Jps算法_JPS算法

    Jps算法_JPS算法目录概念 强迫邻居(ForcedNeighbour) 跳点(JumpPoint) JPS寻路算法(JumpPointSearch) 实现原理 示例过程 JPS+(JumpPointSearchPlus) 预处理 示例过程 总结 参考概念JPS(jumppointsearch)算法实际上是对A*寻路算法的一个改进,因此在阅读本文之前需要先了解A*算法。A*算法在扩展节点时会把节点所有邻居都考虑进去,这样openlist中点的..

    2022年9月20日
    0
  • SpringBoot +JDBC连接Mysql数据库

    SpringBoot +JDBC连接Mysql数据库SpringBoot使用JDBC连接Mysql数据库    Spring连接Mysql的方式有很多,例如JDBC,SpringJPA,Hibeirnate,Mybatis等,本文主要介绍使用最简单、最底层的JDBC方式来连接Mysql数据库,JDBC连接数据库,主要是注入JdbcTemplate,使用JdbcTemplate来操作数据库。一、在mysql中的test库中建立user表,…

    2022年6月25日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号