R树和R *树的范围搜索复杂度是多少?我理解范围搜索的过程:类似于DFS搜索,它访问每个节点,如果节点的边界框与目标范围相交,则在结果集中包含该节点。更确切地说,我们还需要考虑它使用的分支定界策略:如果父节点与目标不相交,那么我们就不会访问其子节点。然后复杂度应小于O(n),其中n是节点数。我真的不知道如何根据叶子数(或数据点)计算节点数。 有人能在这里给我解释一下吗?谢谢。
答案 0 :(得分:2)
显然,如果你的范围在每个维度都是[-∞;∞],最坏的情况必须至少为O(n)。由于树的原因,它可能与O(n log n)一样糟糕。
假设答案是单个条目,平均情况可能是O(log n) - 只需要遵循通过树的少数路径(如果你的重叠很少)。
它是记录页面大小的基础。所以它通常不会超过5,因为你永远不会想要超过1000 ^ 5 = 10 ^ 15个对象的树。
出于所有实际目的,假设运行时复杂性只是答案集大小O(s)。选择2%的数据需要两倍于1%。