In diesem Artikel werden hauptsächlich das Prinzip und die Implementierungsmethode der PHP-Schnellsortierung vorgestellt und das Algorithmusprinzip und die spezifischen Implementierungstechniken der PHP-Schnellsortierung anhand von Beispielen analysiert
Die Details lauten wie folgt:
<?php $n = array('13','14','55','10','54','2','79','106','89','90','22','60','111','77777','-110','-10','123'); function partition($n,$left,$right) { global $n; $pivot = $n[$left]; $lo=$left; $hi=$right+1; while($lo+1!=$hi) { if($n[$lo+1]<$pivot) $lo++; else if($n[$hi-1]>$pivot) $hi--; else{ $t=$n[$lo+1]; $n[$lo+1]=$n[$hi-1]; $n[$hi-1]=$t; $lo++; $hi--; } } $n[$left]=$n[$lo]; $n[$lo]=$pivot; return $lo; } function quicksort($n,$left,$right) { global $n; $dp = 0; if ($left<$right) { $dp=partition($n,$left,$right); quicksort($n,$left,$dp-1); quicksort($n,$dp+1,$right); } } quicksort($n,0,sizeof($n)-1); print_r($n); ?>
Schnellsortierung ist eine Verbesserung gegenüber der Blasensortierung. Seine Grundidee besteht darin, die zu sortierenden Daten durch Einwegsortierung in zwei unabhängige Teile aufzuteilen. Alle Daten in einem Teil sind kleiner als alle Daten im anderen Teil, und dann werden die beiden Teile der Daten nacheinander sortiert. Für eine schnelle Sortierung kann der gesamte Sortiervorgang rekursiv durchgeführt werden, sodass die gesamten Daten zu einer geordneten Sequenz werden.
Unter der Annahme, dass das zu sortierende Array A[1]...A[N] ist, wählen Sie zunächst zufällig Daten (normalerweise die ersten Daten) als Schlüsseldaten aus und geben Sie dann alle Zahlen ein, die kleiner als diese sind Davor werden alle Zahlen, die größer sind als sie, dahinter platziert. Dieser Vorgang wird als schnelle Sortierung mit einer Position bezeichnet. Der Algorithmus für die schnelle Sortierung lautet:
1). , das Element ist X zugewiesen, also ein Wert kleiner als Exchange
5), wiederholen Sie die Schritte 3 und 4, bis I=J; Datensequenz mit 49 als Mittelpunkt und trennen Sie den vorherigen Teil. Führen Sie eine schnelle Sortierung ähnlich dem letzten Teil durch, um die schnelle Sortierung aller Datensequenzen abzuschließen, und wandeln Sie diese Datensequenz schließlich in eine geordnete Sequenz um
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er kann jedem beim Lernen helfen.
Detaillierte Erläuterung der WeChat-Entwicklungszugriffsbeispiele
php Detaillierte Erläuterung des WeChat-Entwicklungszugriffsbeispiels
PHP+MySQL realisiert die Fuzzy-Abfrage der Mitarbeiterinformationsfunktion
Das obige ist der detaillierte Inhalt vonPHP-Schnellsortierungsprinzip, Implementierungsmethode und Beispielanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!