Несколько методов быстрого определения числа, находящегося между заданными границами:
- Двоичный поиск. 15 Нужно сохранить все числа в отсортированном массиве и запустить по нему двоичный поиск, сверяясь с наименьшим и наибольшим числом диапазона. 5 Если искомое число находится посередине, значит, найден правильный диапазон, в противном случае нужно искать диапазоны ниже или выше текущего. 5
- Объединение диапазонов в древовидной структуре. 5 По сути, это похоже на отсортированный список с бинарным поиском. 5 Преимущество такого метода в том, что изменять дерево будет быстрее, чем отсортированный массив (добавлять или удалять диапазон). 5
- Сортировка по нижнему краю (началу). 5 Это проще всего реализовать и достаточно быстро, если нет миллионов диапазонов. 5 При поиске диапазона нужно найти диапазон, в котором начало <= позиция. 5 Здесь можно использовать двоичный поиск, поскольку список отсортирован. 5 Число находится в диапазоне, если позиция <= конец. 5
Выбор метода зависит от конкретной задачи и предпочтений разработчика. 3