家庭作业
我需要使用数据结构+算法返回由2个(x,y)值组成的范围内的元素数量(即返回在xy平面上的矩形范围内的元素数量)在O(logn *登录)。
我正在考虑两种可能性,kd-tree 和 range 树。kd-tree 非常适合这种情况,因为它可以在 O(logn + k) 范围内找到元素(对于需要报告的 k 个元素)。但我不需要报告元素,我只需要计算范围内的元素数量。
范围树可以在其中工作,我可以在每个节点中拥有一个属性,该属性包含多少小于自身。这样,我可以确定有多少元素小于 O(logn) 次中的特定值(通过转到两个边界并找到彼此小于的节点数的差异)。但是,我认为这不适用于同时具有 (x,y) 维度的数据集。
我在正确的轨道上吗?