Как определить, находится ли точка в пределах набора интервалов?

Я ищу самый быстрый способ решить, находится ли точка на линии в пределах подмножество этой строки. Мне задана целая точка, и у меня также есть «список» из:

  1. точек, представленных целым числом (3, 10, 1000 и т. д.)
  2. интервалов, которые я представляю двумя целыми числами (2:10 включает все целые числа от 2 до 10, 50:60 и т. д.)

В этом примере, если значение моей точки равно 5, то я возвращаю true, потому что оно включено в интервал, то же самое для 55. Если моя точка равна 1000, я также возвращаю true, потому что она соответствует списку точек.

Я ищу быстрый способ (более быстрый, чем линейный)для проверки этого условия, БЕЗ необходимости создавать столько целых чисел, сколько существует возможных точек (,т.е. для интервала 1:1000 Я не хочу создавать 1000 целых чисел). Можно ли это сделать за логарифмическое время?

Спасибо

редактировать :вы можете считать, что любое время, необходимое для предварительной-обработки списка данных, равно 0, потому что после обработки моих начальных интервалов мне нужно применить этот тест к 10k точкам

7
задан Nemo 12 April 2012 в 23:43
поделиться