【数据结构】优先队列,堆

转载请注明原作者网址:http://blog.chinaunix.net/uid-20723500-id-134604.html

以操作系统对任务队列的处理原理提出来优先队列这个概念,在操作系统对任务的调度中,任务队列并不是简单的FIFO形式,而是以一定的优先级被调用的,这个队列就是 优先队列,调度上带有级别区分的队列。
 
优先队列中至少要存在两种操作: insertdeletemin,前者对应着元素入队,后者对应于出队。
可以以很多方式实现优先队列,比如链表,这样插入操作只需要O(1)的时间,但是删除最小元的时间为O(N),也可以用二叉查找树,这样两种操作的平均运行时间都为O(logN).
对于优先队列最普遍的实现是:二叉堆。
 
堆是一棵从左到右填满的二叉树,当然底层例外,堆可以由简单的数组来表征,对于数组位置i上的元素,它的左孩子在2i上,右孩子在2i+1上,父亲则在[i/2]上,对于堆,为了便于上述两种操作的执行,定义一种 堆序性质,即:在一个堆中,对于每一个节点X,X父亲的关键字小于等于X的关键字,根结点除外。
 
这样我们可以给出一些基本的堆操作的算法:
1.INSERT
思路是基于一种“ 上滤”的策略,设堆为H,待插入的元素为X,首先在size+1的位置建立一个空穴,然后比较X和空穴的爸爸的大小,把“大的爸爸”换下来,以此推进,最后把X放到合适的位置。
 
2.DELETEMIN
与上面的上滤对应,这将是一种“ 下滤”的策略,就是逐层推进,把较小的孩子换上来,这里面有个小的问题在具体算法实现上要注意,设堆的最后一个元素是L,在推进到倒数第二层时,将导致最后一层的某个孩子被换上去而产生一个洞,这时候为了保持堆的结构,必须把最后一个元素运过去补上,此时就存在一个问题,如果L比那个孩子小的话就不能保证堆序的性质了,所以在程序中要加一个if语句来进行这个边界条件的处理,还是那句话, 对于一个完整的程序,算法是重要的一方面,而对算法边界问题的处理则是更重要的一方面
 
堆还有其他一些操作,不详细笔记了。
 
最后在说一个堆的应用:
场景:求N个元素的第k个小的元素
算法1:将N个元素排序,取出第k个  O(N)
算法2:取出N个元素的前k个进行排序,然后依次取出N-k个元素,每一个元素都和第k个元素比较,如果比它小,那就把第k个元素删除,然后将该元素插入到适当的位置,重新组成k个元素 O(NK)
算法3:使用堆,使用这N个元素构造堆(O(N)),然后进行k次deletemin(O(klogN)),总的运行时间
O(N+klogN)。当k较大时这个时间为O(klogN),对于小的k值为O(N).
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
1. 智慧监狱概述 智慧监狱的建设背景基于监狱信息化的发展历程,从最初的数字化监狱到信息化监狱,最终发展到智慧监狱。智慧监狱强调管理的精细化、监管的一体化、改造的科学化以及办公的无纸化。政策上,自2017年以来,司法部连续发布了多项指导性文件,推动智慧监狱的建设。 2. 内在需求与挑战 智慧监狱的内在需求包括数据应用与共享的不足、安防系统的单一功能、IT架构的复杂性、信息安全建设的薄弱以及IT运维的人工依赖。这些挑战要求监狱系统进行改革,以实现数据的深度利用和业务的智能化。 3. 技术架构与设计 智慧监狱的技术架构包括统一门户、信息安全、综合运维、安防集成平台和大数据平台。设计上,智慧监狱采用云计算、物联网、大数据和人工智能等技术,实现资源的动态分配、业务的快速部署和安全的主动防护。 4. 数据治理与应用 监狱数据应用现状面临数据分散和共享不足的问题。智慧监狱通过构建数据共享交换体系、数据治理工具及服务,以及基于数据仓库的数据分析模型,提升了数据的利用效率和决策支持能力。 5. 安全与运维 智慧监狱的信息安全建设涵盖了大数据应用、安全管理区、业务区等多个层面,确保了数据的安全和系统的稳定运行。同时,综合运维平台的建立,实现了IT系统的统一管理和自动化运维,提高了运维效率和系统的可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值