21、堆、优先队列与图数据结构详解

堆、优先队列与图数据结构详解

优先队列中的饥饿问题与解决策略

在优先队列的使用中,当高优先级元素不断被插入时,低优先级元素可能永远无法到达队列顶部。以任务调度器为例,低优先级任务就会出现“饥饿”现象。为解决这一问题,系统通常会采用一种机制,随着任务在队列中停留时间的增长,逐渐提高其优先级。这样,即使在高优先级任务充斥的繁忙系统中,低优先级任务最终也能获得足够高的优先级,从而得以执行。操作系统常利用这种方法,确保低优先级进程不会完全被剥夺 CPU 时间。

相关堆数据结构
  • 斐波那契堆 :由堆有序树组成的集合,有时用于计算最小生成树和寻找单源最短路径。
  • k 叉堆 :由分支因子为 k 的树构建而成的堆。虽然不如二叉树形式的堆常见,但对于某些问题,k 叉堆可能是值得考虑的选择。
图数据结构概述

图是计算领域中最为灵活的数据结构之一。实际上,大多数其他数据结构都可以用图来表示,尽管这种表示方式通常更为复杂。一般来说,图用于建模基于对象之间关系或连接的问题。图中的对象可以是有形实体,如网络中的节点或河流中的岛屿,但也可以是更抽象的概念,如系统中的状态或数据库中的事务。对象之间的连接和关系也是如此,网络中的节点是物理连接的,而系统中状态之间的连接可能仅仅表示从一个状态到下一个状态所做的决策。总之,图可以对许多有用且有趣的计算问题进行建模。

图的应用场景
  • 图算法 :用于解决由图建模的问题,许多图算法用于解决与连通性和路由优化相关的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值