Я не буду вдаваться в детали проблемы, которую пытаюсь решить, но она имеет дело с большой строкой и включает в себя нахождение перекрывающихся интервалов, которые существуют в строке.Я могу использовать только один из перекрывающихся интервалов, поэтому я хотел выделить эти интервалы и проанализировать их по отдельности.Мне было интересно, какой алгоритм использовать, чтобы сделать это максимально эффективно.
Я должен подчеркнуть, что скорость здесь имеет первостепенное значение.Мне нужно разделить интервалы как можно быстрее.Алгоритм, который мне пришёл в голову, был Interval Tree, но я не был уверен, что это лучшее, что мы можем сделать.
Деревья интервалов могут запрашиваться за время O (log n), n - это количество интервалов, а для построения требуется время O (nlog n), хотя я хотел знать, можем ли мы сократить их либо.
Спасибо!
Редактировать: Я знаю, что вопрос неопределенный.Я прошу прощения за путаницу.Я предлагаю, чтобы люди посмотрели на ответ Аарона Хурана и комментарии к нему.Это должно помочь прояснить ситуацию намного больше.