gpt4 book ai didi

data-structures - Fibonacci 堆或 Brodal 队列是否在任何地方的实践中使用?

转载 作者:行者123 更新时间:2023-12-03 20:27:21 24 4
gpt4 key购买 nike

最佳答案

据我所知,没有真正使用斐波那契堆或 Brodal 队列的主要应用程序。

斐波那契堆最初的设计目的是满足理论而非实际需求:渐近地加速 Dijkstra 的最短路径算法。 Brodal 队列(和相关的函数数据结构)的设计类似,是为了满足理论保证,具体来说,是为了回答一个长期存在的悬而未决的问题,即是否有可能将斐波那契堆的时间界限与最坏情况保证而不是摊销保证相匹配.从这个意义上说,数据结构的开发不是为了满足实际需求,而是为了插入我们对算法效率极限的理论理解。据我所知,目前还没有算法可以更好地使用 Brodal 队列而不是 Fibonacci 堆。

正如其他答案所指出的,隐藏在斐波那契堆或 Brodal 队列中的常数因子非常高。它们需要大量的指针连接到许多复杂的链表中,因此,引用的局部性非常糟糕,尤其是与标准二进制堆相比。这意味着在给定缓存效果的情况下,它们在实践中的表现可能会更差,除非您的算法需要大量减少键操作。在某些情况下会出现这种情况(例如,链接的答案涉及其中的一些),但将它们视为高度特化的情况,而不是常见的用例。如果您正在处理大型图,则更常见的是使用其他技术来提高效率,例如对手头的问题使用近似算法、更好的启发式或使用基础数据的特定属性的算法。

希望这可以帮助!

关于data-structures - Fibonacci 堆或 Brodal 队列是否在任何地方的实践中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782636/

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