【问题标题】:What data structure do vectors in Clojure use?Clojure 中的向量使用什么数据结构?
【发布时间】:2014-03-23 00:52:13
【问题描述】:

Clojure 使用什么数据结构来实现其向量类型?

我问是因为它们有一些有趣的复杂性属性。将它们编入索引很便宜 (O(log32(N))),而且您可以廉价地更改任何项目的新副本。

这会让我认为它是基于(非常宽的)树,但这并不能解释为什么添加到一端很便宜,而不是另一端。您也不能廉价地在向量中间插入或删除元素。

【问题讨论】:

标签: data-structures vector clojure


【解决方案1】:

【讨论】:

  • 此外,在复制一个结构并添加一些东西(添加一个本质上就是那个操作)只是对一些指针的操作的意义上,不变性有其自身的回报。
猜你喜欢
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多