频繁插入的优先级队列的最快实现

问题描述 投票:0回答:1

当您插入频率是删除频率的两倍时,哪种优先级队列实现具有最佳运行时间

我正在看这个问题哪个优先级队列在实践中更快?但是OP更关心获取最小值而不是插入。我也对斐波那契堆进行了一些挖掘,但发现只有当插入次数少于分钟数时它们才会更好。 Brodal 队列看起来也很快,但我不确定它们在实践中是否高效。

一些实现:

  • 二进制
  • 倾斜
  • 左派
  • 二项式
  • 偏二项式
  • 2–3 堆
  • 自下而上倾斜
  • 配对
  • 排名配对
  • 斐波那契
  • 严格斐波那契
  • 布罗达尔

或者甚至可能是桶装? 实践中最快的是什么?谢谢。

python data-structures
1个回答
0
投票

这个问题可能不适合SO范围。

但是回应你,对于频繁插入的优先级队列(是删除次数的两倍),配对堆可能是最好的选择。

配对堆的插入时间为 O(1),删除时间为 O(log n)。

斐波那契堆在频繁插入时也表现良好,但它们在实践中会带来更多开销。

© www.soinside.com 2019 - 2024. All rights reserved.