Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, 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>>
S> Нам нужен 1 дата. Как правило идут набор дат d1, d2, d3, ... dn
Вы решаете какую-то не ту задачу. Обычно под диапазоном понимают интервал, т.е. пара дат — начало и конец.
Но даже если принять ваше понимание задачи — покажите, как предложенная вами хеш-функция её решает. Рассказывать про бинарный поиск не надо — покажите, как использовать ваш хеш.