首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解R-Tree的时间复杂性吗?

了解R-Tree的时间复杂性吗?
EN

Stack Overflow用户
提问于 2018-02-16 04:39:25
回答 1查看 2.3K关注 0票数 1

在维基百科上快速搜索一下就会发现,R-树的最坏情况下的搜索性能是不确定的,平均情况是O(logMn)。

我认为最坏的情况是这样的,因为在找到项目之前,我们不知道必须在这个结构中执行多少次搜索,实际上,Guttman确实说过,“可能需要搜索访问的节点下的多个子树,因此不可能保证良好的最坏情况下的性能。”我们能用必须执行的搜索次数来表示最坏的情况吗?

关于平均情况,我不明白这是如何计算的。那么最好的情况呢?

EN

回答 1

Stack Overflow用户

发布于 2018-02-19 19:24:28

我会说最坏的情况是O(n + logM n):假设你在R树中存储了许多重叠的矩形。现在存储一个位于所有其他矩形重叠区域的小矩形。对该矩形的查询必须遍历所有子树: nodes -> O(logM n)和entries -> O(n)。

最好的情况是O(log )。R-树在每个分支中具有相同的深度,并且数据仅存储在叶节点中,因此您将始终必须遍历O(logM n)个节点和该节点中的所有条目,因此它应该是O(M * logM n)。

我不确定你是否真的能计算出平均值O(logM n)。但是,如果您有一些平均的正态分布数据(无论这意味着什么),并且重叠(无论几个意味着什么),那么您的平均查询(无论平均值是多少)不应该遍历超过几个(1或2?)子树。我实际上认为平均值是O(M * logM n),因为在一个节点中需要遍历M个条目。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48815868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档