Как определить, в какой диапазон попадает значение?

Какую структуру данных или алгоритм можно использовать для поиска всех диапазонов, содержащих указанное значение, в массиве неизменяемых объектов, где объекты содержат начало и конец диапазона, а также другие данные; при этом диапазоны могут пересекаться и даже быть идентичными, а иногда конец диапазона не указан и считается, что это диапазон из одного элемента?
  • 19 февраля 2024 г. 7:38
Ответы на вопрос 2
Для определения, в какой диапазон попадает значение, можно использовать простой цикл сравнения значения со значениями начала и конца каждого диапазона.

Для поиска всех диапазонов, содержащих указанное значение, в массиве неизменяемых объектов, можно использовать алгоритм перебора всех объектов в массиве и проверку каждого диапазона на включение указанного значения. Для ускорения поиска можно предварительно отсортировать массив по началам диапазонов.

Еще один способ - использовать структуру данных интервальное дерево (interval tree). Это структура данных, которая хранит интервалы и позволяет эффективно искать все пересекающиеся интервалы для данного значения. 

Также можно реализовать свой собственный алгоритм или структуру данных, применимый к конкретным условиям задачи.
попробуйте словарь вместо массива (или сходные типы ) 
думаю других вариантов нет. от слова совсем

ps есть еще разнообразные БД. но целесообразность зависит от объема данных в соотношении с доступной оперативкой..

pps если в достатке оперативка и ядра, то запрос plinq поможет
Похожие вопросы