我有以下ADT(未排序): List<Segment>
//direction is from 0 to 2pi
class Segment {
int start;
int end;
}
Run Code Online (Sandbox Code Playgroud)
如何进行合并阶段(示例中为绿色箭头)?显然,我需要迭代列表,每个段与所有其他段进行比较,并且如果可能的话,为每个段进行简单的合并(这很容易).但是在第二次迭代中,我需要以某种方式返回到列表的开头并重新开始...所以我很难找到这个算法如何收敛.
编辑:段可以是圆形 - 从1.75pi到0.5pi等...