間隔の動的配列にオーバーラッピング間隔をマージする効率的なアルゴリズムを探しています。例えば、ワイズ(時刻、終了時刻を開始)、オーバーラッピング間隔をマージするアルゴリズム
[(1, 2), (4, 8), (3, 10)]
は、(4,8)及び(3,10)が重なっているので、合流後
[(1, 2), (3, 10)]
なります。オーバーラッピングとは、2つの区間のいずれかの部分が同じ瞬間を共有することを意味します。
私は完全な配列が与えられたとき、開始時間の昇順(reference: geeksforgeeks)で間隔をソートした後にスタックで操作を実行できることを知ります。しかし、このアルゴリズムは、指定された配列が非動的である場合にのみ効果的に適用できますが、動的配列に対して効率的なものを探しています。たとえば、配列の間隔は頻繁に更新され、挿入され、間隔は各操作でマージされます。
配列が常に「マージされ」ソートされている場合、新しい間隔を追加する複雑さはO(log n)(挿入/マージする適切な場所のバイナリ検索)にする必要があります。 –
答えセクションで完全なアルゴリズムを詳しく教えてください。 @EugeneSh。 –