【问题标题】:Is there priority queue data structure implementation in Ruby's standard library?Ruby 的标准库中是否有优先级队列数据结构实现?
【发布时间】:2010-11-17 12:18:23
【问题描述】:

Ruby 的标准库有优先队列实现吗?

【问题讨论】:

  • 如果您已经解决了您的问题,您应该在下面发布您的答案(您可以在 48 小时后接受)。您应该简单地使用解决方案编辑您的问题。
  • 只是好奇为什么这不是 Ruby 中的标准库?

标签: ruby data-structures priority-queue


【解决方案1】:

【讨论】:

  • 这个还能用吗?当我尝试要求“算法”时,我得到无法加载“算法”。我需要下载包并将其放在我的项目文件夹中吗...?
  • @TheJKFever 你必须gem install algorithms:rubygems.org/gems/algorithms
  • 如果它像同一个存储库中的最小和最大堆一样臃肿、缓慢且记录不充分,那么我建议你不要使用它。
【解决方案2】:

还有https://rubygems.org/gems/PriorityQueue,尽管它从 2005 年开始没有变化,但它仍然适用于 1.9。

根据我的尝试,它运行良好,有一个基准,并且有据可查。对于算法的 PriorityQueue 和 Heap(这似乎不允许轻易更改给定值的键),我可能不会这么说。

【讨论】:

    【解决方案3】:

    刚刚发布了一个实现优先级队列的 ruby​​ 扩展(在 C++ 中),它比基于 ruby​​ 的实现快几个数量级。见https://rubygems.org/gems/priority_queue_cxx

    【讨论】:

      【解决方案4】:

      如果您有兴趣,RubyGems 中有一个skewheap 实现。

      【讨论】:

        【解决方案5】:

        有长期存在的 ruby​​gem rbtree 提供这种类型的功能。它是Red-Black Tree 的实现。

        此外,还有一个纯 ruby​​ 实现 rbtree-pure

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-04-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多