根据D. M. Mount,线段交叉报告问题(单色情况)的最优算法是O(nlogn + k),但对于红蓝交叉点报告问题是O(n ^ 4/3 log ^ O (1)n + k)。差异背后的明显原因如下:如果存在单色交叉点(在红蓝色情况下),则问题要困难得多。这是因为即使没有双色十字路口,也可能存在二次多个单色交叉点。
为什么我们不能使用最优线段交叉算法来解决红蓝交叉问题?这将使这个问题在O(nlogn + k)
中得到解决答案 0 :(得分:1)
假设有n / 2个蓝色区段和n / 2个红色,每个蓝色区段彼此相交,并且每个红色区段彼此相交,但是没有蓝色和红色区段彼此相交。单色算法的明显用法是生成所有交叉点并保留红蓝色交叉点,但这种调用必须报告(n / 2)(n / 2-1)交叉点,这使得调用算法采用Omega( n ^ 2)即使没有什么可报告的时间。