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