Busco la manera más rápida para decidir si es o no un punto en una línea se encuentra dentro de un subconjunto de esta línea. me dan un Punto de número entero, y también tengo una "lista" de cualquiera de:¿Cómo encontrar si un punto está dentro de un conjunto de intervalos?
- Puntos, representado por un número entero (3, 10, 1000, etc)
- Intervalos, que represento por 2 enteros (2:10 son todos enteros de 2 a 10 inluidos, 50:60, etc.)
En este ejemplo, si el valor de mi punto es 5, entonces devuelvo verdadero porque está incluido en un intervalo , lo mismo para 55. Si mi punto es igual a 1000, también devuelvo verdadero porque coincide con la lista de puntos.
Estoy buscando una forma rápida (más rápida que lineal) para verificar esta condición, SIN tener que exponer tantos enteros como posibles puntos (es decir, para un intervalo 1: 1000 no quiero instanciar 1000 enteros). ¿Se puede hacer esto en un tiempo logarítmico?
Gracias
edición: se puede considerar que cualquier tiempo necesario para pre-procesar la lista de datos es igual a 0, porque una vez que mis intervalos iniciales se procesan Necesito aplicar esta prueba a 10k puntos
¿pueden superponerse los intervalos? No estoy seguro si eso importa, pero parece que debería. – Almo
podrían, pero puedo preprocesar mis datos para que ya no funcionen, lo cual no es un problema en cuanto al tiempo porque estoy usando los mismos conjuntos de intervalos para procesar 10k puntos – lezebulon
¿Se ordenaron? – Freddy