2013-05-29 88 views
10

是否有可用於Haskell的斐波那契堆/優先級隊列? (?甚至是漸近更好的),我發現不同的優先級隊列實現的列表中this question,但我找不到其中的任何符合斐波那契堆的攤銷運行時間:是否有基於斐波那契堆的Haskell優先級隊列?

  • 查找最小爲O(1)攤銷時間。
  • 操作插入,減少鍵和合並(聯合)工作是O(1)攤銷時間。
  • 操作刪除和刪除最小值爲O(log n)攤銷時間。

請參閱the comparison of theoretic bounds

+1

可能沒有生產代碼存在,因爲儘管有理論上的漸進優勢,常數因子通常會使Fibonacci堆比合理大小的數據集的二項堆慢。 –

+0

@OliCharlesworth有趣的是,你能否粗略估算一下斐波那契堆的大小是多少? –

+0

TBH,這有點超出我的範圍;我只讀過這樣的缺點(參見[CLRS](http://en.wikipedia.org/wiki/CLRS))。不要引用我的話); –

回答

9

非Fibonacci堆,但同樣好:愛德華Kmett基於Brodal/Okasaki Brodal堆持久變體的heaps

+4

E.Kmett還沒有實現任何東西嗎? –