【问题标题】:Find threads which overlap times查找重叠时间的线程
【发布时间】:2015-04-02 09:22:01
【问题描述】:

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

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

【问题讨论】:

    标签: algorithm


    【解决方案1】:

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

    按时间排序。通过更喜欢 Start 对象来计算端点重叠,或者更喜欢 End 对象来排除端点重叠来打破关系。

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

    创建一组“重叠”的 ThreadNr 值对。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 2016-04-29
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多