TreeSet的最坏情况时间复杂度是多少?

时间:2014-03-23 20:49:04

标签: java hashmap time-complexity

陈述here

  

TreeSet对add()/ remove()/ contains()有一个log(n)时间复杂度保证。

但是TreeSet使用二叉搜索树,在最坏的情况下,二叉搜索树可以具有O(n)高度。 log(n)的复杂性如何得到保证"?

1 个答案:

答案 0 :(得分:2)

实现在插入时重新平衡树。

insert保证TreeSet的O(lg n)时间限制。这不应该是一个惊喜:实现集合的经典方法是某种official documentation

Java库是公开的,所以让我们自己去看看。可以找到TreeMap,例如self-balancing binary search tree。它是以{{1}}的形式实现的,而{{1}}又是here。正如@Don Roby指出的那样,底层数据结构是红黑树。