Java TreeMap时间复杂度 - lowerKey

时间:2015-06-10 20:54:58

标签: java time-complexity treemap

lowerKey()的Java实现中TreeMap操作的时间复杂度是多少?

我认为它是log(n)但我无法在文档中的任何位置找到它。

更基本的操作的复杂性已有详细记录:

  

此实现提供了保证的log(n)时间成本   containsKey,get,put和remove操作。

顺便说一句:我也对subMap()的复杂性感兴趣。我想lowerKey()的log(n)复杂度将允许常量 subMap()的log(n)时间。

1 个答案:

答案 0 :(得分:4)

lowerKey()是平衡二叉搜索树中的搜索,因此它显然是O(log n)。您可能想要阅读源代码,例如来自here,看看树是如何遍历的。

同样,从NavigableMap返回subMap()的每个操作也需要O(log n),因为您需要遍历树以查找所需的元素。