Haskell 数据结构具有 O(1) 索引/更新和 O(logn) 缺点

day*_*ily 5 haskell immutability time-complexity data-structures

目前我需要一个不可变的数据结构(由 索引Int),它具有快速读取和更新(基本上,有效地 O(1)),但稍微慢一些的缺点(例如 O(logn))是可以接受的。不需要其他操作。我现在拥有的是:

  • Data.IntMap这是一棵基数树。它对于所有事情都有渐近 O(1),是目前最好的选择。
  • Data.Sequence这是一棵手指树。它的最坏情况是 O(logn) 查找/更新,但缺点是 O(1)。这不太符合我的需求,并且IntMap在我的微基准测试中确实比 s 表现更差。
  • Data.HashMap对于所有事情都有 O(logn) 且性能比 更差IntMap

我的问题是:是否有任何 Haskell 数据结构可以比IntMap这方面表现更好?