我正在创建一个公共时间范围的报告,其中所有给定的进程同时执行,我一直在做的是绘制图表并手动计算出来。现在我有更多的数据,绘制图表不会是最佳解决方案,作为计算机工程师,我想以编程方式解决这个问题,使用最佳和高效的算法。
所以问题基本上是,
每个
N进程都有一个它已执行的时间范围列表,找到所有给定进程中所有公共时间间隔的最佳方法是什么。
例子:
假设有三个进程P1, P2, P3, 下表给出了每个进程的执行时间信息:
-|---------|--------------------|-
| PROCESS | TIME OF EXECUTION |
-|---------|--------------------|-
| P1 | (0,4) , (5,10) | **(updated from (0,1) , (5,10))
-|---------|--------------------|-
| P2 | (0,6) , (1,8) |
-|---------|--------------------|-
| P3 | (3,10) |
-|---------|--------------------|-
Y-axis如果我使用时间范围内的每个过程绘制图表,X-axis我可以得到如下所示的内容,并且公共范围以蓝色边框颜色突出显示。
从图中,很明显输出/结果是[ (3, 4), (5, 8) ].
我正在寻找一种解决方案/算法来从给定的输入中推断出这些结果。我将不胜感激能够解决以下问题的答案:
