algorithm - 找到出现在最多矩形中的点

标签 algorithm geometry pseudocode rectangles

几天来我一直在尝试为这个问题寻找算法,但没有成功:

我有 2 个列表 - 一个包含点 ((x,y) ),另一个包含矩形(每个都有两个点 - 左下角 + 右上角)。

矩形平行于轴(x轴和y轴)

我必须返回在最多矩形内的点 Θ(nlog(n)).

因此考虑到所需的运行时间..我可以按照我喜欢的方式对两个数组进行排序..但我似乎仍然没有找到在小于 Θ(n^2) 的时间内解决此问题的方法。

感谢您的提示和帮助。

最佳答案

如 LmTinyToon 所写,采用现成的 R 树实现方法,它更简单。

否则你可以使用扫描线方法:

按 X 坐标对点进行排序,按左边缘和右边缘对矩形进行排序。

用垂直线扫过

当遇到左边缘时,将事件矩形插入区间树,当遇到右边缘时,将其移除。

根据区间树检查每个点

关于algorithm - 找到出现在最多矩形中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44716634/

相关文章:

c++ - 任意结构上的 set_union - 我哪里出错了?

python - 如何在 Python 中初始化一个二维数组?

algorithm - 你如何实现一个程序来找到二维平面中的最短路径?

c# - 根据相对速度和角度找出玩家按下的键

algorithm - 如何将 RGB 代码转换为 8 个简单间隔(可能?)

algorithm - 极小极大算法的伪代码

java - 为什么 QuickSort 比 BubbleSort 慢这么多?

algorithm - 有条件的房间分配和调度任务——优化算法

algorithm - 荷兰国旗问题与排序的区别

CSS创建具有 flex 边缘的锐 Angular 等腰三 Angular 形