Die Grundidee der binären Suche besteht darin, den Mittelwert eines geordneten Arrays mit dem gesuchten Wert zu vergleichen. Wenn der gesuchte Wert größer als der Mittelwert des Arrays ist, bedeutet dies, dass Der Mittelwert des geordneten Arrays ist: Alle Werte davor sind kleiner als der zu suchende Wert. Sie können also alle Werte vor dem Mittelwert des Arrays ausschließen und dann mit der Suche nach dem erforderlichen Wert aus dem Mittelwert fortfahren des Arrays auf den Wert am Ende des Arrays. Der Code ist wie folgt implementiert:
//Binäre Suche
function bin_search($array,$search ){
$low=0;
$height= count($array)-1;//Array-Länge abrufen
while($low<=$height){
$mid=floor(($low+$height)/2);//Holen Sie sich die mittlere Zahl und erzwingen Sie den Bodentyp, um Fehler zu vermeiden
if($array[$mid]==$search){
return $mid+1;//Gefundene Sequenznummer zurückgeben
}else if($array[$mid]<$search) {
//Wenn der mittlere Wert kleiner als der überprüfte Wert ist, Die Werte links von $mid sind alle kleiner als $search. Zu diesem Zeitpunkt sollte $mid $low
$low=$mid+1;< zugewiesen werden 🎜>
}else if($array[$mid]>$search){
//Zu diesem Zeitpunkt bedeutet dies, dass der mittlere Wert größer ist als der gesuchte Wert, dann sind alle Werte rechts von $mid größer als $search. Zu diesem Zeitpunkt sollte $mid $height
$height = zugewiesen werden $mid-1;
}
return „Suche fehlgeschlagen“;//Die Suche ist fehlgeschlagen, der Wert existiert nicht im Array
}
}
$arr= array( 1,4,6,33,75,88,89,93);
echo bin_search($arr,33);
echo bin_search($ arr, 66);?>