Wie finde ich heraus, ob ein Punkt innerhalb einer Reihe von Intervallen liegt?

Ich suche nach dem schnellsten Weg, um zu entscheiden, ob ein Punkt auf einer Linie innerhalb einer Teilmenge dieser Linie liegt oder nicht. Mir wird ein ganzzahliger Punkt gegeben, und ich habe auch eine "Liste" von entweder:

Punkte, dargestellt durch eine ganze Zahl (3, 10, 1000 usw.)Intervalle, die ich durch 2 ganze Zahlen repräsentiere (2:10 sind alle ganzen Zahlen von 2 bis 10 eingeschlossen, 50:60 usw.)

Wenn in diesem Beispiel der Wert meines Punktes 5 ist, gebe ich true zurück, weil er in einem Intervall enthalten ist, das gleiche gilt für 55. Wenn mein Punkt 1000 entspricht, gebe ich auch true zurück, weil er mit der Liste der Punkte übereinstimmt.

Ich suche einen schnellen Weg (schneller als linear), um diese Bedingung zu überprüfen, ohne so viele Ganzzahlen wie möglich zu instanziieren (dh für ein Intervall von 1: 1000 möchte ich nicht 1000 Ganzzahlen instanziieren). Kann dies in einer logarithmischen Zeit erfolgen?

Vielen Dank

Bearbeiten: Sie können davon ausgehen, dass jede Zeit, die für die Vorverarbeitung der Datenliste benötigt wird, gleich 0 ist, da ich diesen Test auf 10.000 Punkte anwenden muss, sobald meine Anfangsintervalle verarbeitet sind

Antworten auf die Frage(6)

Ihre Antwort auf die Frage