Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert man eine schnelle Sortierung in PHP?
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.
Das schematische Diagramm der Idee zur schnellen Sortierung lautet wie folgt:
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 '原始数组 : '.implode(',',$my_array).'\n'; $my_array = quick_sort($my_array); echo '排序后数组 : '.implode(',',$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!