【问题标题】:Purely functional soft heap纯功能软堆
【发布时间】:2011-03-25 01:27:29
【问题描述】:

是否有任何语言的纯函数式soft heap 数据结构的实现?

【问题讨论】:

  • 昨晚我经历了一点;我还没有验证时间复杂度,但它们似乎是错误的日志(1/e),其中 e 为 0
  • 太棒了! Log 仅对小于 1 的参数为负,但 1/ε 不是因为 0
  • 哦,当然。是的,你是对的。我显然(或者我想不是)在思考 log(ε)。那么,当他确实说所有操作的摊销成本为 0 时,他是在谈论一个常数因子?
  • 我猜摊销成本 0 意味着常数因子,是的。

标签: data-structures functional-programming soft-heap


【解决方案1】:

快速搜索 ACM 数字图书馆表明,Chazelle 的软堆结构尽管非常有趣,但受到的研究相对较少,因此持久性/功能性软堆是一个开放的研究课题。

所以我会说不,没有已知的持久软堆方法。描述一个将是一个可发布的结果(它可能归结为添加复制,您会改变原始结构,并确定共享机会)。

【讨论】:

  • @Jon,如果你打算解决这个问题,但你还没有阅读Purely Functional Data Structures,我建议你这样做。尽管它不涉及软堆,但它会教你函数式数据结构设计的基本原则,这将有助于解决这个问题。
  • 在我的 Oni CF 库中有一个功能相当全的 OCaml 实现了 Okasaki 的斜二项堆:bitbucket.org/jhw/oni
【解决方案2】:

这个项目有 Java 代码,翻译成 Scala 可能不会太糟糕......然后让它更实用。

https://github.com/lowasser/SoftSelect

但如前所述,Purely Functional Data Structures 书中的 Haskell 代码可能更容易被软堆采用,尤其是在给出示例 Java 代码的情况下。

https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf

【讨论】:

【解决方案3】:

Haim Kaplan、Robert E. Tarjan、Uri Zwick 的论文描述了但并未完全分析纯功能变体。可以在以下位置找到:

http://phdtree.org/pdf/44150182-soft-heaps-simplified/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多