我在millions of rows
中有一個有點大的數據集,它由時間戳形式的start time
和end time
組成。如何高效地計算時間範圍的交集?
我需要找出最有效率或相當有效的方法來計算這些時間範圍相交的次數。開始時間按升序排列,但結束時間可能不是,也可能不是。
E.g.
1 - Start: 1484725031, End: 1484725045
2 - Start: 1484725033, End: 1484725039
3 - Start: 1484725040, End: 1484725049
在這裏,我們必須記錄1 & 2相交和記錄1和3相交。
目前,我只是通過所有的時間範圍內循環,然後比較,針對這實在是太慢了整個列表...
,我怎麼能改善這個有什麼建議?
按開始時間排序他們。那麼至少你知道你不必尋找早期的範圍,並且一旦找到第一個與當前範圍不相交的第一個範圍,就可以停止。 –
其實你正在使用哪種語言?請注意刪除不必要的標籤 –
我在PHP中執行此操作,但我也可以使用JavaScript。道歉,我刪除了額外的標籤。 – FirstLegion