Heim Backend-Entwicklung PHP-Tutorial Array-Sortier- und Suchalgorithmus in PHP

Array-Sortier- und Suchalgorithmus in PHP

Jun 23, 2023 am 09:45 AM
php算法 php数组排序 php数组搜索

PHP ist eine sehr beliebte Programmiersprache, die verschiedene Datentypen und Algorithmen unterstützt, von denen Array-Sortierung und Suchalgorithmen grundlegende und wichtige Bestandteile sind. In diesem Artikel werden häufig verwendete Array-Sortier- und Suchalgorithmen in PHP sowie deren Anwendungsszenarien und Effizienzanalysen vorgestellt.

1. Array-Sortierung

PHP bietet eine Vielzahl von Array-Sortiermethoden, einschließlich Blasensortierung, Einfügungssortierung, Auswahlsortierung, Schnellsortierung, Zusammenführungssortierung usw. Das Folgende ist eine Einführung und ein Beispielcode für mehrere häufig verwendete Algorithmen:

  1. Bubble Sort

Bubble Sort ist ein einfacher, aber ineffizienter Sortieralgorithmus. Seine Grundidee besteht darin, mit der ersten Ordnung des Arrays zu beginnen , werden die Größen benachbarter Elemente nacheinander verglichen. Wenn das linke Element größer als das rechte Element ist, werden ihre Positionen vertauscht. Nach dieser Vergleichsrunde wird das größte Element an das Ende des Arrays verschoben. Beginnen Sie dann mit dem ersten Element und wiederholen Sie den obigen Vorgang. Die zeitliche Komplexität beträgt O (n ^ 2).

Beispielcode:

function bubble_sort($arr) {
    $len = count($arr);
    for ($i = 0; $i < $len - 1; $i++) {
        for ($j = 0; $j < $len - $i - 1; $j++) {
            if ($arr[$j] > $arr[$j + 1]) {
                $temp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $temp;
            }
        }
    }
    return $arr;
}
Nach dem Login kopieren
  1. Einfügungssortierung

Einfügungssortierung ist ein relativ einfacher Sortieralgorithmus. Seine Grundidee besteht darin, zu sortierende Daten in eine bereits geordnete Reihenfolge einzufügen, um den Sortierzweck zu erreichen. Unter der Annahme, dass die vorherigen Elemente sortiert wurden, beginnen Sie mit dem zweiten Element des Arrays und suchen Sie nach einer geeigneten Position für den Einfügevorgang. Ähnlich wie bei der Blasensortierung beträgt auch die zeitliche Komplexität O(n^2).

Beispielcode:

function insertion_sort($arr) {
    $len = count($arr);
    for ($i = 1; $i < $len; $i++) {
        $temp = $arr[$i];
        for ($j = $i - 1; $j >= 0 && $arr[$j] > $temp; $j--) {
            $arr[$j + 1] = $arr[$j];
        }
        $arr[$j + 1] = $temp;
    }
    return $arr;
}
Nach dem Login kopieren
  1. Quick Sort

Quick Sort ist ein häufig verwendeter und effizienter Sortieralgorithmus. Seine Grundidee besteht darin, ein beliebiges Element im Array als Basiswert auszuwählen und die verbleibenden Elemente dann in zwei zu unterteilen Teilsequenzen: Die Zahlen auf der linken Seite sind alle kleiner als der Basiswert und die Zahlen auf der rechten Seite sind alle größer als der Basiswert. Wiederholen Sie dann die obigen Schritte für die linke und rechte Teilsequenz, bis die Länge der Teilsequenz 1 oder 0 beträgt. Die Zeitkomplexität der schnellen Sortierung beträgt O(n log2 n) und es handelt sich um eine instabile Sortierung.

Beispielcode:

function quick_sort($arr) {
    $len = count($arr);
    if ($len <= 1) {
        return $arr;
    }
    $pivot_key = $arr[0];
    $left_arr = array();
    $right_arr = array();
    for ($i = 1; $i < $len; $i++) {
        if ($arr[$i] <= $pivot_key) {
            $left_arr[] = $arr[$i];
        } else {
            $right_arr[] = $arr[$i];
        }
    }
    $left_arr = quick_sort($left_arr);
    $right_arr = quick_sort($right_arr);
    return array_merge($left_arr, array($pivot_key), $right_arr);
}
Nach dem Login kopieren

2. Array-Suche

Array-Suchalgorithmen in PHP umfassen hauptsächlich lineare Suche, binäre Suche und Hash-Suche. Das Folgende ist eine Einführung und ein Beispielcode für mehrere häufig verwendete Algorithmen:

  1. Lineare Suche

Die Grundidee besteht darin, mit dem ersten Element des Arrays zu beginnen Geben Sie nacheinander die Schlüsselwörter der Elemente ein, um festzustellen, ob sie identisch sind. Geben Sie den Index des Elements zurück, andernfalls geben Sie -1 zurück. Die zeitliche Komplexität der linearen Suche beträgt O(n).

Beispielcode:

function linear_search($arr, $key) {
    $len = count($arr);
    for ($i = 0; $i < $len; $i++) {
        if ($arr[$i] == $key) {
            return $i;
        }
    }
    return -1;
}
Nach dem Login kopieren
  1. Binäre Suche

Die Grundidee besteht darin, das geordnete Array in zwei Teile zu unterteilen und jeweils die Größe der mittleren Elemente und Schlüsselwörter zu vergleichen sind gleich Geben Sie dann den Index des Elements zurück, andernfalls wird der Suchbereich entsprechend der Größenbeziehung um die Hälfte reduziert, bis das Zielelement gefunden wird. Die zeitliche Komplexität der binären Suche beträgt O(log2 n).

Beispielcode:

function binary_search($arr, $key) {
    $low = 0;
    $high = count($arr) - 1;
    while ($low <= $high) {
        $mid = floor(($low + $high) / 2);
        if ($arr[$mid] == $key) {
            return $mid;
        } elseif ($arr[$mid] > $key) {
            $high = $mid - 1;
        } else {
            $low = $mid + 1;
        }
    }
    return -1;
}
Nach dem Login kopieren
  1. Hash-Suche

Hash-Suche ist ein effizienter Suchalgorithmus, der Hash-Tabellen verwendet. Die Grundidee besteht darin, den Schlüssel jedes Elements einer Hash-Tabelle zuzuordnen, seine Position mithilfe einer Hash-Funktion zu berechnen und dann das erforderliche Element an dieser Position zu finden. Die zeitliche Komplexität der Hash-Suche beträgt O(1), es muss jedoch eine Hash-Tabelle erstellt und verwaltet werden.

Das Obige ist eine Einführung und ein Beispielcode für Array-Sortier- und Suchalgorithmen, die häufig in PHP verwendet werden. Die Auswahl verschiedener Algorithmen entsprechend den tatsächlichen Anwendungsszenarien und der Datengröße kann die Effizienz des Codes verbessern.

Das obige ist der detaillierte Inhalt vonArray-Sortier- und Suchalgorithmus in 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Was sind die gängigen Algorithmen in der PHP-Programmierung? Was sind die gängigen Algorithmen in der PHP-Programmierung? Jun 12, 2023 am 08:30 AM

Was sind die gängigen Algorithmen in der PHP-Programmierung?

Array-Sortier- und Suchalgorithmus in PHP Array-Sortier- und Suchalgorithmus in PHP Jun 23, 2023 am 09:45 AM

Array-Sortier- und Suchalgorithmus in PHP

So sortieren und filtern Sie Daten mithilfe von PHP-Arrays So sortieren und filtern Sie Daten mithilfe von PHP-Arrays Jul 15, 2023 pm 12:57 PM

So sortieren und filtern Sie Daten mithilfe von PHP-Arrays

Wie kann man Wissen darstellen und automatisch Algorithmen in PHP generieren? Wie kann man Wissen darstellen und automatisch Algorithmen in PHP generieren? May 22, 2023 pm 08:10 PM

Wie kann man Wissen darstellen und automatisch Algorithmen in PHP generieren?

Vertiefendes Verständnis der Kernalgorithmen von PHP und Vue in der Brain-Mapping-Funktion Vertiefendes Verständnis der Kernalgorithmen von PHP und Vue in der Brain-Mapping-Funktion Aug 15, 2023 pm 01:00 PM

Vertiefendes Verständnis der Kernalgorithmen von PHP und Vue in der Brain-Mapping-Funktion

Analyse des PHP-Algorithmus: Wie kann ein dynamischer Programmieralgorithmus verwendet werden, um das 0-1-Rucksackproblem zu lösen? Analyse des PHP-Algorithmus: Wie kann ein dynamischer Programmieralgorithmus verwendet werden, um das 0-1-Rucksackproblem zu lösen? Sep 19, 2023 pm 12:33 PM

Analyse des PHP-Algorithmus: Wie kann ein dynamischer Programmieralgorithmus verwendet werden, um das 0-1-Rucksackproblem zu lösen?

Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden? Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden? Sep 19, 2023 pm 01:14 PM

Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden?

Algorithmen und Datenstrukturen in PHP Algorithmen und Datenstrukturen in PHP May 25, 2023 am 08:51 AM

Algorithmen und Datenstrukturen in PHP

See all articles