【发布时间】:2011-03-24 08:34:58
【问题描述】:
我试图澄清一些有关 TreeSet 某些操作的复杂性的事情。在 javadoc 上它说:
"这个实现提供了 保证 log(n) 时间成本 基本操作(添加、删除和 包含)。”
到目前为止一切顺利。我的问题是在 addAll()、removeAll() 等上会发生什么。这里 Set 的 javadoc 说:
"如果指定的集合也是一个 set, addAll 操作有效 修改此集合,使其值为 两个集合的并集。”
它只是解释操作的逻辑结果还是暗示了复杂性?我的意思是,如果这两个集合由例如红黑树 以某种方式加入树比将一个的每个元素“添加”到另一个更好。
无论如何,有没有办法将两个 TreeSet 组合成一个复杂度为 O(logn) 的树集?
提前谢谢你。 :-)
【问题讨论】:
-
回复我得到的答案:我不太明白这个。假设您有两个 SortedSet,它们没有重叠的元素并由红黑树表示。红黑树中的“加入”操作需要 O(log(n+m)) 时间,为什么不能加入它们?
标签: java complexity-theory red-black-tree treeset