Heim > Backend-Entwicklung > PHP-Tutorial > So implementieren Sie die Array-Sortierung in PHP: Schnellsortierung, Einfügungssortierung, Zusammenführungssortierungsalgorithmus

So implementieren Sie die Array-Sortierung in PHP: Schnellsortierung, Einfügungssortierung, Zusammenführungssortierungsalgorithmus

不言
Freigeben: 2023-04-03 09:18:02
Original
1647 Leute haben es durchsucht

Es gibt viele Möglichkeiten, Arrays in PHP zu sortieren, und jede Array-Sortierung hat ihre eigenen unterschiedlichen Prinzipien. Schauen wir uns die Beispiele des Schnellsortierungsalgorithmus, des Zusammenführungssortierungsalgorithmus und des Einfügungssortierungsalgorithmus genauer an.

Durchlauf speziell geformter Arrays

Ermitteln Sie den Durchschnitt der Zahlen im folgenden Array:

$arr1 = array(
1, 2, array(31, 32, 33), 4,
array(51, 52, 53, array(541, 542, 543, 544) ),
6, array(71, 72, 73),
);
$count = 0; //计数
$sum = GetArraySum($arr1);
echo “\
Nach dem Login kopieren

Schnelle Sortierung Algorithmus

Prinzipbeschreibung:

Für ein solches Array: [5, 1,2, 6,7];

Nehmen Sie das erste Element heraus (und verwenden Sie es als Zwischenarray) und nach dem Vergleich der verbleibenden Elemente werden sie in zwei Arrays unterteilt:

Das linke Array-Element ist kleiner als das mittlere Element, und das rechte Array-Element ist nicht kleiner als das mittlere Element .

Wenn das linke Array und das rechte Array bereits sortierte Arrays sind, führen Sie diese drei zusammen, um das Endergebnis zu erhalten.

Wenn das linke Array und das rechte Array noch keine sortierten Arrays sind, verwenden Sie diese Funktion weiterhin rekursiv, um die geordneten Arrays zu erhalten.

Schematische Darstellung:

So implementieren Sie die Array-Sortierung in PHP: Schnellsortierung, Einfügungssortierung, Zusammenführungssortierungsalgorithmus

Hauptdaten:

$arr1 = [5, 2, 1, 6,7]; Daten, die das Prinzip 1 stark veranschaulichen

Klein: [2, 1], groß: [6, 7], Mitte: [5]

Kombinieren Sie die drei: [1 , 2, 5 , 6, 7];

$arr1 = [2, 1]; //Daten, die das Prinzip 2 stark veranschaulichen

Mitte: [2], links: [1] , []

Sonderfall:

$arr1 = [5, 2, 4, 6, 1, 3];
$arr1 = [5, 2, 4, 6, 1, 3];
//$arr1 = [5, 3, 2, 8, 7];
echo “\
Nach dem Login kopieren

Einfügesortieralgorithmus

Prinzipbeschreibung:

Für ein solches Array: [2 , 3, 4, 1];

Um eine bestimmte Zahl n in ein bereits sortiertes Array einzufügen,

fügen Sie einfach n gefolgt von den Elementen des Arrays von hinten nach vorne hinzu. In einem Vergleich, solange Wenn festgestellt wird, dass ein Element größer als n ist, verschiebt

das Element um eine Stelle nach hinten und führt es dann weiter nach vorne und vergleicht es. Wenn es größer als n ist, wird es um eine Stelle nach hinten verschoben und so weiter An.

Wenn es am Ende nichts gibt, das größer als n ist, setze n an die Stelle, die leer war, als du es nach hinten verschoben hast.

Für ein Array kann das erste Element als „sortiertes“ Array betrachtet werden.

Dann kann das zweite Element nach dem oben genannten Prinzip „sortiert eingefügt“ werden, also die beiden vorherigen sortiert werden,

und zu einem „sortierten Array“ mit zwei Elementen werden. Daran schließt sich eine Analogie an.

Schematische Darstellung:

So implementieren Sie die Array-Sortierung in PHP: Schnellsortierung, Einfügungssortierung, Zusammenführungssortierungsalgorithmus

Prinzipdaten:

$arr1 = [2, 3, 4, 1] // Starke Erklärung Daten des Prinzips 1

$arr1 = [2, 3, 1]; //Daten, die das Prinzip 2 effektiv veranschaulichen

$arr1 = [2, 1]; veranschaulicht effektiv das Prinzip Data 3

$arr1 = [1, 2]; //Data 3

das veranschaulicht effektiv das Prinzip:

$arr1 = [5, 2, 4, 6, 1, 3];
$arr1 = [2, 3, 4, 1];
$arr1 = [2, 4, 5, 6, 1, 3];
echo “\
Nach dem Login kopieren

Sortieralgorithmus zusammenführen

Prinzipbeschreibung:

Für ein solches Array: $arr1 = [1, 3, 5, 2, 4, 6]; in zwei Teile teilen: $a = [1 , 3, 5],
$b = [2, 4, 6];

Wenn zwei Arrays sortiert wurden, dann, nachdem die folgenden Operationen an den beiden Arrays ausgeführt wurden, Sie können ein sortiertes „Fusion-Array“ der beiden Arrays erhalten:

Nehmen Sie das erste Element a1 von Array a heraus, nehmen Sie dann das erste Element b1 von Array b heraus, vergleichen Sie die Größen von a1 und b1,

Fügen Sie das kleine Element (angenommen a1) in ein neues Array ein und löschen Sie das erste Element des entsprechenden Arrays a,

und nehmen Sie dann das erste Element des entsprechenden Arrays heraus (nicht). gerade diese Daten), und vergleichen Sie dann jedes Mal die Größe der beiden

in ein neues Array und fahren Sie mit dem nächsten „Löschen, Abrufen, Vergleichen“ fort. . . .

Das Endergebnis ist, dass Sie ein neues sortiertes Array im neuen Array erhalten können.

Für ein Array, das noch nicht sortiert wurde, erhalten Sie schließlich das kürzeste Array – nur eine oder 0 Zellen. Diese Art von Array ist auf natürliche Weise sortiert Befehl.

Schematische Darstellung:

So implementieren Sie die Array-Sortierung in PHP: Schnellsortierung, Einfügungssortierung, Zusammenführungssortierungsalgorithmus

Prinzipdaten:

$arr1 = [1, 3, 5, 4, 6, 7, 8 ]; //Die Daten 1, die das Prinzip effektiv veranschaulichen

werden in 2 von der Mitte geteilt: [ ]

[ 1, 3, 4, 5 , ]

$arr1 = [1, 3, 2, 4]; //Daten, die das Prinzip 2 effektiv veranschaulichen

Demofall:


$arr1 = [5, 2, 4, 6, 1, 3];
echo “\
Nach dem Login kopieren

Verwandte Empfehlungen:

PHP-Blasensortierung, schnelle Sortierung, PHP-Blasensortierung

PHP-Array-Sortiermethodenfreigabe (Blasensortierung, Auswahl Sortieren)

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Array-Sortierung in PHP: Schnellsortierung, Einfügungssortierung, Zusammenführungssortierungsalgorithmus. 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