Re[5]: Хэш для диапазона дат
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 23.03.17 10:18
Оценка:
Здравствуйте, Sinclair, Вы писали:


S>Допустим, нам известны диапазоны d1 и d2, а также их хеши h1 и h2.

S>Покажите код функции, которая определяет, пересекаются ли диапазоны:
S>
S>public static boolean AreIntersecting(DateRange d1, DateRange d2, int h1, int h2)
S>{
S>  if(SomeFunction(h1, h2))
S>  {  /// вот тут мы типа ускоряем проверку благодаря использованию хешей
S>     return ???
S>  } else // идём по "медленной" ветке 
S>     return (d1.Start <= d2.End)  && (d1.End >= d2.Start)
S>}
S>


Нам нужен 1 дата. Как правило идут набор дат d1, d2, d3, ... dn
Достаточно выполнить запрос Select max(date) from даты where date <= искомая дата

В обычном понимании это бинарный поиск на меньше или равно

Обычно так поступают при группировках по месяцам, кварталам, годам ....

Другое дело, что диапазоны могут быть с пробелами. Но это уже экзотика
и солнце б утром не вставало, когда бы не было меня
Отредактировано 23.03.2017 12:21 Serginio1 . Предыдущая версия . Еще …
Отредактировано 23.03.2017 10:19 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.