假设如果 x1 ≤ x2 且 y1 ≤ y2,坐标 (x1,y1) 处的点支配另一点 (x2,y2);
我有一组点 (x1,y1) , ....(xn,yn) 我想找到支配对的总数。我可以通过将所有点相互比较来使用蛮力来做到这一点,但这需要时间 O(n 2 )。相反,我想使用分而治之的方法在 O(n log n) 时间内解决这个问题。
现在,我有以下算法:
画一条垂直线,将点集分成两个相等的 P left和 P right子集。作为基本情况,如果只剩下两点,我可以直接比较它们。
递归计算 P left和 P right中的支配对数
一些征服步骤?
问题是我看不到“征服”步骤应该在这里。我想计算从 P left到 P right的交叉点有多少对,但如果不比较两个部分中的所有点,我不知道该怎么做,这需要时间 O(n 2 )。
谁能给我一个关于如何进行征服步骤的提示?
所以 y 坐标的两半是:{1,3,4,5,5} 和 {5,8,9,10,12}
我画了分割线。