查找重叠时间的线程

时间:2015-04-02 00:55:47

标签: algorithm

如果我有一个包含开始时间和结束时间的线程列表,如何找到重叠时间的线程?有算法吗?

我查看了this,我不知道这是否会有所帮助,因为它找到了最大重叠次数。

1 个答案:

答案 0 :(得分:2)

创建一个Time,(Start | End),ThreadNr对象的数组。

按时间排序。通过优先选择Start对象来计算端点重叠,或者更喜欢End对象来排除端点重叠,从而打破联系。

创建一个ThreadNr值的“活动”数组。

制作一组“重叠”的ThreadNr值对。

遍历排序值,并且:遇到Start时,向ThreadNr的“重叠”集添加一个条目,与活动数组中的每个其他线程值配对,然后将ThreadNr添加到活动数组。遇到End时,从活动数组中删除ThreadNr。