lowerKey()
的Java实现中TreeMap
操作的时间复杂度是多少?
我认为它是log(n)但我无法在文档中的任何位置找到它。
更基本的操作的复杂性已有详细记录:
此实现提供了保证的log(n)时间成本 containsKey,get,put和remove操作。
顺便说一句:我也对subMap()
的复杂性感兴趣。我想lowerKey()
的log(n)复杂度将允许常量 subMap()
的log(n)时间。
答案 0 :(得分:4)
lowerKey()
是平衡二叉搜索树中的搜索,因此它显然是O(log n)
。您可能想要阅读源代码,例如来自here,看看树是如何遍历的。
同样,从NavigableMap
返回subMap()
的每个操作也需要O(log n)
,因为您需要遍历树以查找所需的元素。