设计背景中的 LLD 数据结构: 堆积- 一个用于持续决策的数据结构
LLD Data Structures in Design Context: Heap — A Data Structure Built for Continuous Decision Making
"HashMap帮助你找到已经知道的东西. 高压帮助你决定下一步会发生什么。” 在上篇文章中,我们发现并不是每一个软件问题都是为了找到一个特定的物体. 有时,系统已经知道它在找什么。 其他时候,系统不会事先知道答案. 相反,它必须反复回答以下问题: 下一步该执行什么任务? 应该指定哪个司机? 先为哪位顾客服务? 哪个警报最关键? 这些是根本不同的问题。 系统不是要收回一个物体,而是要作出决定。 这儿是Heap来的地方. 一个Heap Is Built for decisions, not Searches 想象一下你在管理一个医院急诊室。 病人整天都来...
"HashMap帮助你找到已经知道的东西. 高压帮助你决定下一步会发生什么。” 在上篇文章中,我们发现并不是每一个软件问题都是为了找到一个特定的物体. 有时,系统已经知道它在找什么。 其他时候,系统不会事先知道答案. 相反,它必须反复回答以下问题: 下一步该执行什么任务? 应该指定哪个司机? 先为哪位顾客服务? 哪个警报最关键? 这些是根本不同的问题。 系统不是要收回一个物体,而是要作出决定。 这儿是Heap来的地方. 一个Heap Is Built for decisions, not Searches 想象一下你在管理一个医院急诊室。 病人整天都来 医生应该按照病人到达的顺序治疗病人吗? 也许不是。 相反,他们问了一个问题。 注意重要的东西 医院不是在寻找某个病人 它正在选择最优先的病人。 堆积就是为这种问题设计的 当初学者听到"数据结构"时,一种不同的思维方式,他们经常考虑存储数据. 经验丰富的工程师们的想法不同. 他们问道:"我的系统反复进行什么操作?" 如果答案是:那是一个看问题。 但如果答案是: 这是一个决定问题。 对连续决策进行了优化。 何等为相. A Heap 是一个数据结构,它保持了最重要的元素即刻可用. 根据系统的不同,"最重要的"可以指不同的东西. 例如: 最高优先 最低成本 Earlyest 截止时间 最高得分 收视率最高的司机 最紧急的车票 The Heap并不决定"重要"的意思. 你的业务规则是。 赫普只是确保最重要的物品总是容易取用. 想象一下空中交通管制塔 想象着数十架飞机接近机场 控制塔不感兴趣