Hallo, ich habe eine Liste mit Koordinaten (x|y) und möchte darin gerne eine bestimmte Koordinate effizient suchen. Die Koordinaten sind sortiert (mehr oder weniger), sodass ich mir folgendes überlegt:
Jetzt ist das aber nicht vollständig, weil es auch sein kann, dass long kleiner und lat größer (oder anders herum) ist, weil es sich hierbei um Positionen von Bahnhöfen handelt und man dort ja nicht immer durch exakt einen Punkt fährt (es gibt ja Beispielsweise verschiedene Gleise) und es kann auch sein, dass ein Punkt nicht exakt so in der liste vorhanden ist. Wie würde ich diese Methode vervollständigen?
Code:
koordinate searchPosition(long, lat, v) { //v = Vergleichswert
if(strecke[v].long == long && strecke[v].lat == lat) {
return strecke[v];
} else if(strecke[v].long > long && strecke[v].lat > lat) {
return searchPosition(long, lat, v/2);
} else if(strecke[v].long < long && strecke[v].lat < lat) {
return searchPosition(long, lat, v + v/2)
}
}