优先队列(堆)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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Java】Java编译错误:需要class,interface或enum

    【Java】Java编译错误:需要class,interface或enum1.源代码classFangFaDemo{publicstaticvoidmain(String[]args){intx=1,y=2;System.out.println(sum(x,y));}}publicstaticintsum(inta,intb){returna+b;}…

    2022年6月8日
    65
  • CUDA编程之快速入门(CUDA10)

    CUDA编程cmake基本模板cmake版本与命令cmake版本之间会有命令差异,高版本中会舍弃一些低版本中的命令。而网上找到的大部分的cuda程序cmake文件都是基于低版本的,基本上都是有 add_cuda_executable这个命令的版本。而这个命令在高版本中丢弃了,所以要修改win10预览版系统中cmake出错的问题如果安装的是win10的预览版或者其他什么原因,如果出现报错:–SelectingWindowsSDKversion10.0.19041.0totarge

    2022年4月10日
    177
  • python listnode.val(Python算法)

    在做leetcode简单题的时候发现了python的listcode,记录一下。源自:https://www.cnblogs.com/yuanmingzhou/p/9661152.htmlclassNode(object):def__init__(self):self.val=Noneself.next=NoneclassNode_handle():def__init__(self):self.cur_n

    2022年4月17日
    72
  • 高并发的解决方案「建议收藏」

    高并发的解决方案「建议收藏」1.应用和静态资源分离刚开始的时候应用和静态资源是保存在一起的,当并发量达到一定程度的时候就需要将静态资源保存到专门的服务器中,静态资源主要包括图片、视频、js、css和一些资源文件等,这些文件因为没有状态所以分离比较简单,直接存放到响应的服务器就可以了,一般会使用专门的域名去访问。通过不同的域名可以让浏览器直接访问资源服务器而不需要再访问应用服务器了。架构图如下:2.页面缓存

    2022年5月6日
    40
  • Origin | 堆叠柱状图 | 多列(分组)堆积柱状图[通俗易懂]

    Origin | 堆叠柱状图 | 多列(分组)堆积柱状图[通俗易懂]origin8.0画stackcolumn图(堆叠柱状图)origin画多列(百分比)堆积柱状图用origin绘制多分类(多组)堆叠柱状图

    2022年9月30日
    4
  • 帆软报表 数据填报_六大报表

    帆软报表 数据填报_六大报表164.导出excel0kb内存不够或者磁盘空间不足163.UnresolvableOperation:mobileinclassReportDispatcher排除jar包和插件影响的话,可能是LIC里面没有决策平台功能点162.客户嵌入我们的url时出现报错Refusedtodisplay’URL’inaframebecauseitset’X-Fr…

    2022年9月28日
    2

发表回复

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

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