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

So implementieren Sie einen binären Suchalgorithmus mit PHP

Jul 07, 2023 pm 01:55 PM
php实现二分查找算法

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;
}
Nach dem Login kopieren

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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Apr 06, 2025 am 12:02 AM

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie debugge ich den CLI -Modus in PhpStorm? Wie debugge ich den CLI -Modus in PhpStorm? Apr 01, 2025 pm 02:57 PM

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

See all articles