Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie einen binären Suchalgorithmus mit PHP

So implementieren Sie einen binären Suchalgorithmus mit PHP

PHPz
PHPzOriginal
2023-07-07 13:55:361203Durchsuche

So implementieren Sie mit PHP einen binären Suchalgorithmus

Der binäre Suchalgorithmus ist ein effizienter Suchalgorithmus, der sich zum Auffinden bestimmter Elemente in geordneten Arrays eignet. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP-Sprache den binären Suchalgorithmus implementieren, und es werden Codebeispiele angehängt.

Die Idee des binären Suchalgorithmus besteht darin, das Array in zwei Teile zu teilen und dann durch Vergleich der Größenbeziehung zwischen dem Zielwert und dem mittleren Element zu bestimmen, in welchem ​​Teil sich der Zielwert befindet. Wenn das mittlere Element dem Zielwert entspricht, ist die Suche erfolgreich; andernfalls wird basierend auf der Größenbeziehung zwischen dem mittleren Element und dem Zielwert die Suche im entsprechenden Teil fortgesetzt, bis der Zielwert gefunden wird oder dies festgestellt wird Der Zielwert existiert nicht.

Das Folgende ist ein Codebeispiel für PHP zur Implementierung des binären Suchalgorithmus:

function binary_search($arr, $target) {
    $left = 0;
    $right = count($arr) - 1;
    
    while ($left <= $right) {
        $mid = floor(($left + $right) / 2);
        
        if ($arr[$mid] == $target) {
            return $mid;
        }
        
        if ($arr[$mid] < $target) {
            $left = $mid + 1;
        } else {
            $right = $mid - 1;
        }
    }
    
    // 目标值不存在
    return -1;
}

$arr = [1, 3, 5, 7, 9, 11, 13, 15];
$target = 7;
$result = binary_search($arr, $target);

if ($result == -1) {
    echo "目标值不存在";
} else {
    echo "目标值在数组中的位置是:" . $result;
}

Führen Sie den obigen Code aus. Die Ausgabe lautet „Die Position des Zielwerts im Array ist: 3“ und gibt an, dass die Indexposition von Der Zielwert 7 im Array ist 3.

Die Funktion binary_search im obigen Code empfängt zwei Parameter: das zu durchsuchende geordnete Array und den Zielwert. Die Funktion verwendet zwei Zeiger left und right, um den Suchbereich des Arrays darzustellen. Schränken Sie den Suchbereich durch die while-Schleife kontinuierlich ein, bis der Zielwert gefunden wird oder festgestellt wird, dass der Zielwert nicht vorhanden ist. binary_search函数接收两个参数:待查找的有序数组和目标值。函数使用两个指针leftright来表示数组的查找范围。通过while循环不断缩小查找范围,直到找到目标值或者确定目标值不存在。

代码中的关键是通过$mid

Der Schlüssel im Code besteht darin, die Indexposition des mittleren Elements über die Variable $mid zu berechnen und sie dann mit dem Zielwert zu vergleichen. Wenn sie gleich sind, wird die Indexposition zurückgegeben, andernfalls wird der Suchbereich entsprechend der Größenbeziehung angepasst und die nächste Runde der binären Suche fortgesetzt.

Es ist zu beachten, dass der binäre Suchalgorithmus ein geordnetes Array als Eingabe erfordert, da es sonst nicht korrekt durchsucht werden kann. Daher müssen Sie vor der Verwendung des binären Suchalgorithmus sicherstellen, dass das zu durchsuchende Array in aufsteigender (oder absteigender) Reihenfolge sortiert wurde.

Die zeitliche Komplexität des binären Suchalgorithmus beträgt O(logn), was effizienter ist als O(n) des linearen Suchalgorithmus. Bei der Verarbeitung großer Datenmengen kann die Verwendung des binären Suchalgorithmus die Sucheffizienz erheblich verbessern.

Ich hoffe, dieser Artikel kann den Lesern helfen, die Methode zur Verwendung der PHP-Sprache zur Implementierung des binären Suchalgorithmus zu verstehen und zu beherrschen. Durch die rationale Verwendung des binären Suchalgorithmus können wir Suchvorgänge in geordneten Arrays effizienter durchführen. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen binären Suchalgorithmus mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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