Всем привет, нужна помощь, есть массив времени ['09:00', '09:15' .... ] как лучше организовать поиск пересечений, к примеру пользователь ввел 09:10 нужно найти что попадает в диапазон первое что пришло в голову преобразовать массив строк в int второе найти min и max, время преобразовать в даты и там уже искать может есть варианты попроще
time = 15:00 foreach (ranges as [from, to]) { if (time > from && time < to) { interception found } }
Ну и понятное дело что надо 15:00 перевести в 1500, так же как и все from & to
Если чаще нужно искать, чем добавлять, то тогда бинарный поиск быстрее.
Особенно если промежутки не пересекаются.
Но бинарный поиск имеет мало смысла на маленьких объемах. Время суток это всего 1440 минут. Туть хоть тупым перебором по минутам иди. Особо на производительность не повлияет.