Heim > Backend-Entwicklung > PHP-Tutorial > Beispiele für vier grundlegende Sortieralgorithmen in PHP

Beispiele für vier grundlegende Sortieralgorithmen in PHP

WBOY
Freigeben: 2016-08-08 09:29:46
Original
1293 Leute haben es durchsucht

Übersicht: Zu den vier grundlegenden Sortieralgorithmen von PHP gehören: Blasensortierung, Schnellsortierung, Auswahlsortierung und Einfügungssortierung.

1. Blasensortierung

Ideenanalyse: In einer zu sortierenden Zahlengruppe wurde das aktuelle Paar nicht sortiert doch Reihenfolge, Vergleichen und Anpassen zweier benachbarter Zahlen von vorne nach hinten, so dass die größere Zahl sinkt und die kleinere Zahl steigt. Das heißt, immer wenn zwei benachbarte Zahlen verglichen werden und sich herausstellt, dass ihre Reihenfolge den Reihenfolgeanforderungen widerspricht, werden sie vertauscht.
Code-Implementierung:
$arr=array(1,43,54,62,21,66,32,78,36,76,39);
function bubbleSort($arr)
{
$len=count($arr);
//Diese Ebenenschleife steuert die Anzahl der Blasenbildungsrunden
for($i=1;$ i<$len;$i++)
{ //Diese Schleifenschicht wird verwendet, um zu steuern, wie oft eine Zahl in jeder Runde verglichen werden muss
for($k=0;$k<$len -$i;$ k++)
{
if($arr[$k]>$arr[$k+1])
{
$tmp=$arr[$k+1 ];
$arr[$k+1]=$arr[$k];
             $arr[$k]=$tmp;                                sortieren




Code-Implementierung:

function selectSort($arr) {// Die Doppelschleife ist abgeschlossen, die äußere Ebene steuert die Zahl von Runden, und die innere Ebene steuert die Anzahl der Vergleiche

$len=count($arr);

for($i=0; $i<$len-1; $ i++) { / /Nimm zuerst die Position des Mindestwerts an $p = $i;                                                                                                                                                Notieren Sie die Position des Minimalwerts und verwenden Sie das bekannte Minimum Vergleichswert im nächsten Vergleich.                     $p = $j;                                                                                                                                                                            . Wenn sich herausstellt, dass die Position des Minimalwerts von der aktuell angenommenen Position $i abweicht, können die Positionen vertauscht werden.
if($p != $i) {
$tmp = $arr[$p];
$arr[$p] = $arr[$i];
$arr[$ i] = $tmp;
}
}
//Das Endergebnis zurückgeben
return $arr;
}


3. Einfügungssortierung


Ideenanalyse: Unter der Annahme, dass die vorherigen Zahlen bereits in Ordnung sind, müssen wir nun in einer Menge von zu sortierenden Zahlen die n-te Zahl in die zuvor geordneten Zahlen einfügen, damit diese n Zahlen auch in Ordnung sind . Gute Ordnung. Wiederholen Sie diesen Zyklus, bis alles in Ordnung ist.

Code-Implementierung:
function insertSort($arr) {
$len=count($arr); for($i=1, $i<$len; $i++) {
$tmp = $arr[$i];
//Innere Schleifensteuerung, vergleichen und einfügen
for($j=$i-1;$ j> ;=0;$j--) {
If($tmp < $arr[$j]) {
Element swap
                        $arr[$j+1]                                                                                                          // Wenn Sie nicht auf Da stoßen Die zu verschiebenden Elemente sind bereits sortiert und Arrays, die vorherigen müssen nicht erneut verglichen werden.
             Pause;

Ideenanalyse: Wählen Sie ein Benchmark-Element aus, normalerweise das erste Element oder das letzte Element. Durch einen Scan wird die zu sortierende Spalte in zwei Teile geteilt, ein Teil ist kleiner als das Referenzelement und der andere Teil ist größer oder gleich dem Referenzelement. Zu diesem Zeitpunkt befindet sich das Basiselement nach dem Sortieren an der richtigen Position, und dann werden die beiden geteilten Teile auf die gleiche Weise rekursiv sortiert.



Code-Implementierung:


function quickSort($arr) {

//Bestimmen Sie zunächst, ob Sie fortfahren müssen

$length = count ( $arr); if($length <= 1) { return $arr;

}

//Wähle das erste Element als Basis aus

$base_num = $arr[ 0 ];

//Alle Elemente außer dem Lineal durchlaufen und entsprechend ihrer Größe in zwei Arrays einteilen //Zwei Arrays initialisieren $left_array = array(); //Kleiner als die Grundlinie > $ right_array = array(); // Größer als die Basis for($i=1; $i<$length; $i++) { if($base_num > $arr[$i]) {
_array [] = arr [$ i];
}
}
// Nennen Sie diese Funktion rekursiv in derselben Sortiermethode für die linken bzw. rechten Arrays ($left_array);
$ right_array = quick_sort($right_array);
//Zusammenführen
return array_merge($left_array, array($base_num), $right_array);
}

Referenz:

http://www.evget.com/article/2015/2/11/22149.html


http://www.evget.com/ Produkt/2605



Das Obige hat Beispiele für die vier grundlegenden Sortieralgorithmen von PHP vorgestellt, einschließlich relevanter Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.


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