performance - 计算一个单元格包含的圆圈数

标签 performance algorithm geometry

Cell constructed by the circles

假设我们给出了 n 个循环,它们构造了单元格 Ci。 给出了每个圆的中点(x-y 坐标)和半径。 细胞的特征在于其限制该细胞的弧线。

对于每个弧,都会给出以下信息: 1. 所属圆的中点 2.源点和目标点为x-y坐标,圆弧的起点和终点。 3. 圆弧本身的中点也给出了它的 x-y 坐标。

对于 Cell1,我将弧线着色为黄色、蓝色和棕色。另外,我尝试在图片上指出圆弧的中点、目标和来源。

现在,我想计算每个单元格包含的圆圈数,运行时间为 O(n²)。 例如,单元格 C1 仅包含在 1 个圆中,单元格 C11 包含在 2 个圆中,单元格 C5 包含在 3 个圆中。

我的想法是在 O(m) 中计算它,其中 m:= 弧数。 我认为一般来说弧的数量可以超过n²。

任何帮助或想法将不胜感激!提前致谢。

最佳答案

我认为一般来说弧的数量可以超过n²。

你为什么这么认为?

任何一对圆最多相交于两个地方。所以单个圆最多会被分为 2n - 2其他圆的弧。既然有n圈子里最多有 2n<sup>2</sup> - 2n = O(n<sup>2</sup>)弧线。

关于performance - 计算一个单元格包含的圆圈数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27235852/

相关文章:

java - 在 Java 中获取数组的 k 个最小(或最大)元素的最快方法是什么?

递增顺序的算法 - O(tlgn)

algorithm - 寻找体素化策略的一些指示

performance - 系统/操作系统缓存与应用程序缓存

performance - 什么会导致 Intellij 在使用 Scala 时突然变得很慢?

arrays - 设计一个使用散列并支持比较的数据结构

javascript - 将经纬度坐标排序成顺时针排列的四边形

c# - 找到完全覆盖矩形集所需的最少固定大小矩形的算法

c - 我需要让这个功能更有效率

c# - for 循环和 Parallel.For() 之间的性能损失(MaxDegreeOfParallelism 为 1)