【发布时间】:2013-11-29 07:58:06
【问题描述】:
我正在寻找番石榴TreeRangeMap,这似乎非常适合我对项目的需求。 java文档说这是基于(java标准?)TreeMap,它有O(log(n))时间来获取,放置和下一步。
但是 TreeRangeMap 应该是某种范围树实现,根据这个SO question,查询的时间复杂度为 O(k + log(n)),空间为 O(n),k 是范围大小?有人可以证实这一点吗?
我对@987654323@操作的时间复杂度也很感兴趣。是否有相同的 O(k + log(n))?
谢谢。
【问题讨论】:
-
他似乎没有说明他使用的是什么算法,但我可以想象,它实际上是一个B+ tree,它是一个标准的数据库存储数据结构,支持范围查询。
-
subRangeMap操作发送一个查询并创建一个新映射,因此如果您的范围包含 k 个值,您最终可能会遇到一个范围查询 + k 个插入的复杂性。
标签: java guava time-complexity space-complexity