Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert man eine schnelle Sortierung in PHP?

Wie implementiert man eine schnelle Sortierung in PHP?

藏色散人
藏色散人Original
2019-03-04 10:19:539428Durchsuche

Schnellsortierung ist eine Vergleichssortierung, was bedeutet, dass Elemente jeder Art sortiert werden können. Man kann sagen, dass die schnelle Sortierung eine Verbesserung der Blasensortierung darstellt.

Wie implementiert man eine schnelle Sortierung in PHP?

Das schematische Diagramm der Idee zur schnellen Sortierung lautet wie folgt:

Wie implementiert man eine schnelle Sortierung in PHP?

Hinweis: Die horizontale Linie ist die Pivot-Wert

Der Code des Schnellsortierungsalgorithmus lautet wie folgt:

<?php
function quick_sort($my_array)
{
    $loe = $gt = array();
    if(count($my_array) < 2)
    {
        return $my_array;
    }
    $pivot_key = key($my_array);
    $pivot = array_shift($my_array);
    foreach($my_array as $val)
    {
        if($val <= $pivot)
        {
            $loe[] = $val;
        }elseif ($val > $pivot)
        {
            $gt[] = $val;
        }
    }
    return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt));
}

$my_array = array(3, 0, 2, 5, -1, 4, 1);
echo &#39;原始数组 : &#39;.implode(&#39;,&#39;,$my_array).&#39;\n&#39;;
$my_array = quick_sort($my_array);
echo &#39;排序后数组 : &#39;.implode(&#39;,&#39;,$my_array);

Ausgabe:

原始数组:3,0,2,5,-1,4,1                             
排序后数组:-1,0,1,2,3,4,5

Einführung in die verwandte Funktion:

array_shift( )-Funktion verschiebt die Einheit am Anfang des Arrays aus dem Array;

array_shift ( array &$array ) : mixed

array_shift() verschiebt die erste Einheit des Arrays heraus und gibt sie als Ergebnis zurück, dekrementiert die Länge des Arrays um eins und verschiebt alle anderen Einheiten um eins nach vorne. Alle numerischen Tastennamen werden so geändert, dass sie ab Null zählen, und Texttastennamen bleiben unverändert. Die Funktion

array_merge() führt ein oder mehrere Arrays zusammen;

array_merge ( array $array1 [, array $... ] ) : array

array_merge() führt die Zellen eines oder mehrerer Arrays zusammen und die Werte in einem Array werden an das vorherige Array angehängt . . Gibt das resultierende Array zurück.

Dieser Artikel ist eine Einführung in den PHP-Schnellsortieralgorithmus. Ich hoffe, er wird Freunden in Not hilfreich sein!

Das obige ist der detaillierte Inhalt vonWie implementiert man eine schnelle Sortierung in 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