假设我在一般位置有 n 个线段。对于我的 n 个片段中的每一个片段,我如何快速计算它与其他 n-1 个片段相交的数量?
我可以在 O(n 2 ) 时间内天真地做到这一点。我可以在 O((n + k) log n) 时间内使用相当简单的扫描线算法 (Bentley-Ottmann) 找到所有交叉点,其中 k 是此类交叉点的数量,然后将我找到的交叉点聚合成一堆计数。
不过,我不需要找到交叉点;我只想知道有多少。我看不出如何将扫描线算法修改得更快,因为它需要为每个交叉点在树中重新排序两件事,而且我想不出任何其他不会遇到同样问题的技术。
我也有兴趣了解如何计算总共有多少个交叉口。