我正在尝试解决以下问题:我们给出了一堆带有一些起点和终点坐标的线段。所有这些都是水平或垂直的。我试图想出一个算法来计算给定的一组段中的组件数。分量是一组线段,其中每个分段与至少一个其他分段相交(或者换句话说,可以从任何分段的任何点到达任何其他分段上的任何点)。是否有可能比明显的O(N ^ 2)解决方案做得更好?
答案 0 :(得分:1)
您可以使用线扫描算法(1) (2)来查找交叉点 使用这些交叉点可以使用union-find algorithm制作细分群集。
请注意,当交点计数很高时(约O(N ^ 2)),此方法可能是二次方。