陈述here
TreeSet对add()/ remove()/ contains()有一个log(n)时间复杂度保证。
但是TreeSet
使用二叉搜索树,在最坏的情况下,二叉搜索树可以具有O(n)高度。 log(n)的复杂性如何得到保证"?
答案 0 :(得分:2)
实现在插入时重新平衡树。
insert
保证TreeSet
的O(lg n)时间限制。这不应该是一个惊喜:实现集合的经典方法是某种official documentation。
Java库是公开的,所以让我们自己去看看。可以找到TreeMap
,例如self-balancing binary search tree。它是以{{1}}的形式实现的,而{{1}}又是here。正如@Don Roby指出的那样,底层数据结构是红黑树。