Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Datenstruktur (1) binäre Suche

PHP-Datenstruktur (1) binäre Suche

WBOY
WBOYOriginal
2016-08-08 09:32:52978Durchsuche

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);?>

Das Obige stellt die binäre Suche nach PHP-Datenstruktur (1) vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn