想象一下像订单10M这样的很多点。
现在我在给定的空间中随机画一个圆圈。
此圆圈现在将根据中心和半径包围一些点。
现在,我想选择此圈内存在的所有点。
蛮力方法效率很低。
有没有更好的方法来解决这个问题。
P.S-我在python中编码。
由于
编辑: 蛮力方法:
从空间中选择一个点,计算距离中心的距离,如果它小于半径,则它位于其他外部。
蛮力是,我必须通过所有点,这是问号,因为在下一次迭代中我将再次选择随机点并重复上述步骤。这就像O(n ^ 2 ).. 我能做得更好吗?
答案 0 :(得分:2)
在某些空间分区结构中预先安排点。
例如,四叉树。遍历树。由于每个节点对应于平面上的正方形,您可以快速检查该正方形是否与您的圆相交(圆圈内至少有一个角或圆形完全在正方形内)。如果它确实相交,则继续遍历该节点,如果它不相交,则跳过它的所有子节点,可能会消除对该节点中的点的大量单独检查。