Heim > Artikel > Backend-Entwicklung > Wie findet man effizient den nächstgelegenen Wert in einem geordneten Array?
Den nächstgelegenen Wert in einem Array finden
Bei der Datenverarbeitung ist es für verschiedene Anwendungen oft wichtig, den am nächsten passenden Wert in einem Array zu finden. Wie können wir bei einem gegebenen Zielwert und einem geordneten Array effizient das Element lokalisieren, das dem Ziel am nächsten liegt?
Lösung:
Um den nächstgelegenen Wert in einem Array zu finden, Wir können jedes Element im Array durchlaufen und die Differenz zwischen dem Zielwert und jedem Element berechnen. Das Element mit der kleinsten Differenz ist der am nächsten kommende Wert. Hier ist eine PHP-Funktion für diese Aufgabe:
function getClosest($search, $arr) { $closest = null; foreach ($arr as $item) { if ($closest === null || abs($search - $closest) > abs($item - $search)) { $closest = $item; } } return $closest; }
Diese Funktion benötigt zwei Parameter: den Zielwert, nach dem gesucht werden soll, und das Zahlenarray, in dem gesucht werden soll. Es berechnet die absolute Differenz zwischen dem Zielwert und jedem Element im Array. Das Element mit der kleinsten absoluten Differenz wird in der Variable $closest gespeichert und letztendlich als Ergebnis zurückgegeben.
Verwendung:
Betrachten Sie das folgende Array:
array(0, 5, 10, 11, 12, 20)
Bei der Suche mit einem Zielwert von 0 gibt die Funktion 0 zurück. Bei einem Zielwert von 3 gibt die Funktion 5 zurück. Ebenso gilt für a Bei einem Zielwert von 14 gibt die Funktion 12 zurück.
Das obige ist der detaillierte Inhalt vonWie findet man effizient den nächstgelegenen Wert in einem geordneten Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!