【发布时间】:2015-12-11 16:55:57
【问题描述】:
我有以下 ADT(未排序):List<Segment>
//direction is from 0 to 2pi
class Segment {
int start;
int end;
}
如何进行合并阶段(示例中的绿色箭头)?显然,我需要遍历列表并将每个段与所有其他段进行比较,并且如果可能的话,对每一对进行简单的合并(这很容易)。但是在第二次迭代中,我需要以某种方式返回列表的开头并重新开始等等......所以我很难找到这个算法将如何收敛。
编辑:这些段可以是圆形的——从 1.75pi 到 0.5pi 等...
【问题讨论】:
-
你的列表是有序的还是随机的?
-
是循环的吗?也就是说,你能有一个从 1.5pi 开始,然后从 2pi 到 0.5pi 的段吗?
-
@Petr 我没有注意这个,但实际上是的 - 它可以是循环的......
标签: java arrays algorithm list sorting