关于Priority Queue的困惑:低优先级元素为何先被删除?
厘清优先级队列的优先级规则差异
- 优先级队列的核心逻辑不是固定的「数值越高越先取出」,而是按照预设的优先级排序规则来决定元素的处理顺序,这个规则是完全可以自定义的。
- 你认知里的「优先级值最高的元素先被取出」是最常见的一种实现场景(比如任务调度里优先处理高优先级任务),但反过来,也存在需要先处理低优先级元素的场景(比如系统资源紧张时先清理低优先级后台进程)。
- 幻灯片里提到的「若x的优先级低于y,则x会先被删除」,就是采用了反向的优先级规则:把“优先级更低”定义为“更优先被处理(删除)”,这和常规实现只是排序逻辑方向不同,并没有违背优先级队列的本质——始终遵循自定义的优先级顺序来操作元素。
内容的提问来源于stack exchange,提问作者Hothyfa Suliman
相关产品推荐
相关产品推荐

