Я искал эффективный алгоритм для объединения перекрывающихся интервалов в динамическом массиве интервалов. Например, (время начала, время окончания) мудро,
[(1, 2), (4, 8), (3, 10)]
становится
[(1, 2), (3, 10)]
после слияния, потому что (4, 8) и (3, 10) перекрываются. Перекрытие означает, что любая часть двух интервалов имеет один и тот же момент.
Я знаю, что когда задан полный массив, операция может быть выполнена со стеком после сортировки интервалов по времени начала в порядке возрастания (ссылка: geeksforgeeks). Но этот алгоритм эффективно применим только тогда, когда данный массив не является динамическим, а я ищу, который будет эффективен для динамического массива. Например, интервалы массива будут часто обновляться и вставляться, а интервалы должны объединяться при каждой операции.