Dieser Artikel stellt hauptsächlich den in PHP implementierten Halbsuchalgorithmus vor, beschreibt kurz das Prinzip der Halbsuche und analysiert die relevanten Betriebsfähigkeiten von PHP unter Verwendung rekursiver und nicht rekursiver Methoden zur Implementierung des Halbsuchalgorithmus im Formular Freunde in Not können sich auf die folgenden Beispiele beziehen und hoffen, dass sie allen helfen können.
Definition: Halbsuchtechnologie, also binäre Suche. Seine Voraussetzung ist, dass die Datensätze in der linearen Tabelle in der Schlüsselreihenfolge vorliegen müssen (normalerweise von groß nach klein) und die lineare Tabelle sequentiell gespeichert werden muss.
Die Grundidee der Halbsuche: Nehmen Sie den mittleren Datensatz als Vergleichsobjekt. Wenn der angegebene Wert das Schlüsselwort des mittleren Datensatzes ist, ist das Schlüsselwort des mittleren Datensatzes gleich, dann ist die Suche erfolgreich; wenn der angegebene Wert kleiner als der Schlüssel des mittleren Datensatzes ist, wird die Suche fortgesetzt. Wenn der angegebene Wert größer als der Schlüssel des mittleren Datensatzes ist, wird die Suche in der rechten Hälfte des mittleren Datensatzes fortgesetzt . Wiederholen Sie den obigen Vorgang, bis die Suche erfolgreich ist oder in allen Suchbereichen kein Datensatz vorhanden ist und die Suche fehlschlägt.
Implementierungscode:
<?php //递归方式 function bin_recur_search($arr,$val){ global $time; if(count($arr) >= 1){ $mid = intval(count($arr) / 2); $time++; if($arr[$mid] == $val){ return '值为:'.$arr[$mid].'<br>查找次数:'.$time.'<br>'; }elseif($arr[$mid] > $val){ $arr = array_splice($arr,0,$mid); return bin_recur_search($arr, $val); }else{ $arr = array_slice($arr,$mid + 1); return bin_recur_search($arr, $val); } } return '未找到'.$val; } //非递归方式 function bin_search($arr,$val){ if(count($arr) >= 1){ $low = 0; $high = count($arr); $time = 0; while($low <= $high){ $time++; $mid = intval(($low + $high)/2); if($val == $arr[$mid]){ return '索引:'.$mid.'<br>值为:'.$arr[$mid].'<br>查找次数:'.$time; }elseif($val > $arr[$mid]){ $low = $mid + 1; }else{ $high = $mid - 1; } } } return '未找到'.$val; } $arr = array(1,3,5,7,7,9,25,68,98,145,673,8542); echo bin_recur_search($arr, 673); echo bin_search($arr, 673); ?>
Laufergebnisse:
值为:673 查找次数:4 索引:10 值为:673 查找次数:4
Verwandte Empfehlungen:
Detaillierte Erläuterung der Javascript-Binärsuche_Javascript-Fähigkeiten
Javascript-Halbsuchzeichenposition im Array (geordnete Liste)_Javascript-Kenntnisse
Das obige ist der detaillierte Inhalt vonSo implementieren Sie den binären Suchalgorithmus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!