gpt4 book ai didi

java - 实现优先级队列有哪些不同的方法?

转载 作者:行者123 更新时间:2023-12-01 16:24:06 26 4
gpt4 key购买 nike

实现优先级队列有哪些不同的方法?我读到:
优先级队列可以看作:
View 1:优先级队列作为有序列表。
View 2:优先级队列作为一个集合。

它们有什么不同?

最佳答案

这只是构成优先级队列的接口(interface)和行为。您可以按照您喜欢的任何方式实现它。只要接口(interface)和行为相同,实现的类型对于客户端来说并不重要。

各种方法的差异主要是对性能或内存使用的影响。例如,当使用排序数组作为底层数据结构时,在向队列添加/删除项目时可能需要重新组织整个数组,而使用链表时相同的操作相对便宜。

数据结构和算法的属性将传播到客户端。您必须通过分析最频繁的操作等来选择适合您的用例的实现。

我认为基于集合的实现不太适合这个,因为集合只允许唯一的项目。就像优先级队列一样,有不同的 Set 实现具有不同的属性,但通常,集合是无序的,您可能必须查看每个项目才能确定队列中的下一个项目。但同样:如果项目的独特性适合您的用例,您可以使用它。但我宁愿将这样的实现命名为 PrioritySet 或 UniquePriorityQueue 来将属性传达给客户端。

关于java - 实现优先级队列有哪些不同的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62189350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com