将List中的数据与其他所有索引进行比较

时间:2014-06-26 15:46:34

标签: java c# algorithm list

  class A
    {
     public DateTime start;
     public DateTime end;
    }

嗨我有一个任何大小的对象列表,如果它们重叠,我想将每个对象与列表中的其他对象进行比较,我的想法是去foreach并遍历每个对象并将其与整个列表进行比较。这将是非常缓慢和资源占用。还有什么更好的吗?

1 个答案:

答案 0 :(得分:1)

线性(O(NlogN))解决方案是按起点对对象进行排序,并简单地将每个对象的起点与其前面的终点进行比较。如果对象k的起点低于或等于对象k-1的终点,则表示您有重叠。否则,你不会。

我不确定C#但是在Java中你可以通过实现Comparable接口并使用Arrays.sort()来实现。我给你写了一些示例代码,但我在移动设备上。