@artstylee

Как оптимально искать в большом массиве?

[
   {
       "start": "2023-01-19T04:10:10:000Z",
       "end": "2023-01-19T04:20:00:000Z"
   },
   ..., //similar object
   ..., //similar object
]


есть такой массив из 1000 объектов
и есть искомая дата в ISO "2023-01-19T04:10:10:000Z"
даты в массиве идут по порядку
мне нужно найти объект start/end или между совпадает с искомой датой
итерация через весь массив с преобразованием не оптимально
пришел к выводу что оптимальнее всего делить массив на два, проверять среднее значение(больше или меньше искомой даты) а потом делать тоже самое в одной половине массива и так по кругу пока не найду искомое значение.
уверен что я не первый кто с этим столкнулся. накидайте ссылок на пример решения такой задачи, не хочется изобретать велосипед
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
neuotq
@neuotq
Прокрастинация
Очевидный двоичный поиск. Рекурсивная функция, берёте элемент который по середине, сравниваете, отсекаете соответсвующую половину, и повторяете снова. В интернете полно примеров.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы