Schnelle Sortierung mit Array-Funktionen in PHP

王林
Freigeben: 2023-06-16 08:56:02
Original
788 Leute haben es durchsucht

PHP ist eine sehr beliebte Programmiersprache und wird häufig für die Webentwicklung verwendet. In PHP ist Array ein sehr verbreiteter Datentyp und eine sehr leistungsfähige Datenstruktur. Aus diesem Grund bietet PHP viele Array-Funktionen, die Entwicklern bei der Handhabung und Manipulation von Arrays helfen. Dazu gehört die Schnellsortierfunktion, die uns hilft, Arrays schnell zu sortieren.

Schnellsortierung ist ein gängiger Sortieralgorithmus. Seine Grundidee besteht darin, ein Array durch Vergleich und Austausch in zwei Unterarrays aufzuteilen, von denen eines kleiner ist als das andere, und dann jedes Unterarray rekursiv zu sortieren. Dieser Vorgang wird fortgesetzt, bis die Größe des Subarrays 1 beträgt. Anschließend wird das gesamte Array sortiert.

In PHP können wir die Funktion sort() verwenden, um das Array zu sortieren. Die Funktion sort() ist eine sehr praktische und praktische Funktion, ihr Sortieralgorithmus ist jedoch kein schneller Sortieralgorithmus. Wenn wir ein Array mit dem Schnellsortierungsalgorithmus sortieren möchten, können wir in PHP die Funktion usort() verwenden. Die Funktion

usort() kann uns dabei helfen, das Array auf eine bestimmte Weise zu sortieren. Es akzeptiert zwei Parameter: Einer ist das zu sortierende Array und der andere ist eine Rückruffunktion zum Vergleichen von Elementen. Diese Rückruffunktion muss zwei Parameter akzeptieren, ihre Größen vergleichen und ein Vergleichsergebnis zurückgeben (gleich, kleiner als oder größer). Die Funktion usort() sortiert das Array basierend auf diesem Vergleichsergebnis.

Hier ist ein Beispiel für die Verwendung der Funktion usort() zum schnellen Sortieren:

<?php

function quickSort($arr) {
    if(count($arr) <= 1) {
        return $arr;
    }
    $pivot = $arr[0];
    $left = $right = array();
    for($i = 1; $i < count($arr); $i++) {
        if($arr[$i] < $pivot) {
            $left[] = $arr[$i];
        } else {
            $right[] = $arr[$i];
        }
    }
    return array_merge(quickSort($left), array($pivot), quickSort($right));
}

$arr = array(5, 1, 4, 2, 8);
$arr = quickSort($arr);
print_r($arr);

?>
Nach dem Login kopieren

In diesem Beispiel definieren wir eine Funktion namens quickSort(), die ein Array als Parameter akzeptiert und ein sortiertes Array zurückgibt. Wenn die Größe des Arrays 1 oder weniger beträgt, führt die Funktion keine Rekursion nach unten durch, sondern gibt das ursprüngliche Array zurück. Andernfalls wählt die Funktion das erste Element im Array als Pivot-Element (d. h. den Pivot) aus und teilt das Array dann in zwei Unterarrays auf: eines kleiner als das Pivot-Element und eines größer als das Pivot-Element. Setzen Sie dann diesen rekursiven Prozess fort, bis die Größe des Subarrays 1 oder weniger beträgt, und führen Sie alle Subarrays zu einem sortierten Array zusammen.

Zuletzt rufen wir diese Funktion „quickSort()“ auf und drucken das Ergebnis aus. Die Ausgabe sollte ein Array sein, das von klein nach groß angeordnet ist: array(1, 2, 4, 5, 8).

Zusammenfassend ist es sehr praktisch, Array-Funktionen zum schnellen Sortieren in PHP zu verwenden. Wir müssen lediglich eine Rückruffunktion definieren, die die Größe von Elementen vergleicht, und diese an die Funktion usort() übergeben. Diese Funktion hilft uns, Arrays schnell und bequem zu sortieren und ist ein unverzichtbares Werkzeug für PHP-Entwickler.

Das obige ist der detaillierte Inhalt vonSchnelle Sortierung mit Array-Funktionen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage