Como descobrir se um ponto está dentro de um conjunto de intervalos?

Estou procurando a maneira mais rápida de decidir se um ponto em uma linha está ou não dentro de um subconjunto dessa linha. Eu recebo um ponto inteiro e também tenho uma "lista" de:

Pontos, representados por um inteiro (3, 10, 1000, etc)Intervalos, que eu represento por 2 inteiros (2:10 são todos inteiros de 2 a 10 inluded, 50:60, etc)

Neste exemplo, se o valor do meu ponto for 5, então retornarei verdadeiro porque ele está incluído em um intervalo, o mesmo para 55. Se meu ponto for igual a 1000, também retornarei verdadeiro porque ele corresponde à lista de pontos.

Eu estou procurando uma maneira rápida (mais rápida do que linear) para verificar essa condição, sem ter que instanciar tantos inteiros quantos pontos possíveis (ou seja, para um intervalo de 1: 1000 eu não quero instanciar 1000 inteiros). Isso pode ser feito em um tempo logarítmico?

obrigado

edit: você pode considerar que qualquer tempo levado para pré-processar a lista de dados é igual a 0, porque uma vez que meus intervalos iniciais são processados ​​eu preciso aplicar este teste para 10k pontos

questionAnswers(6)

yourAnswerToTheQuestion