Array -Sortierung ist eine sehr häufige Aufgabe bei der Programmierung und hilft uns, Elemente in einem Array gemäß den festgelegten Regeln neu zu ordnen. In PHP werden mehrere Sortierfunktionen eingebaut, aber in einigen Fällen müssen wir möglicherweise unsere eigenen Sortieralgorithmen schreiben, um den bestimmten Anforderungen zu erfüllen. In diesem Artikel wird sich darauf konzentrieren, wie der PHP -Array -Sortieralgorithmus angepasst wird, einschließlich gängiger Blasensorten, Auswahlsortierung und Einfügen von Sortieralgorithmen und praktische Codebeispiele.
Bubble -Sortierung ist ein einfacher Sortieralgorithmus, der wiederholt benachbarte Elemente vergleicht und ihre Positionen ausgetauscht hat, bis das gesamte Array bestellt ist. Seine Zeitkomplexität ist O (n²), die bei geringem Datenvolumen besser zu verwenden ist.
function bubbleSort(array &$arr) {
$n = count($arr);
for ($i = 0; $i < $n - 1; $i++) {
for ($j = 0; $j < $n - $i - 1; $j++) {
if ($arr[$j] > $arr[$j + 1]) {
$tmp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $tmp;
}
}
}
}
Die Grundidee der Sortierung der Sortierung besteht darin, das kleinste (oder größte) Element aus dem ungeortierten Teil auszuwählen und am Ende des sortierten Teils zu platzieren. Es ist etwas optimierter als die Sortierung von Blasen, aber die zeitliche Komplexität ist immer noch O (N²) und für kleine Datensortierungen geeignet.
function selectionSort(array &$arr) {
$n = count($arr);
for ($i = 0; $i < $n - 1; $i++) {
$min_idx = $i;
for ($j = $i + 1; $j < $n; $j++) {
if ($arr[$j] < $arr[$min_idx]) {
$min_idx = $j;
}
}
$tmp = $arr[$i];
$arr[$i] = $arr[$min_idx];
$arr[$min_idx] = $tmp;
}
}
Die Sortierung des Einfügens ist eine Möglichkeit, jedes neue Element in den bereits sortierten Teil einzufügen, um ein neu bestelltes Array zu bilden. Seine Zeitkomplexität ist O (n²), ist jedoch effizienter, wenn das Datenvolumen klein ist und häufig für die Sortierung kleiner Daten verwendet wird.
function insertionSort(array &$arr) {
$n = count($arr);
for ($i = 1; $i < $n; $i++) {
$key = $arr[$i];
$j = $i - 1;
while ($j >= 0 && $arr[$j] > $key) {
$arr[$j + 1] = $arr[$j];
$j--;
}
$arr[$j + 1] = $key;
}
}
Als nächstes sortieren wir ein PHP -Array in aufsteigender Reihenfolge mit dem Blasensortalgorithmus:
$arr = [5, 2, 8, 3, 1];
bubbleSort($arr);
Das sortierte Array lautet wie folgt:
[1, 2, 3, 5, 8]
In diesem Artikel werden drei gemeinsame PHP -Array -Sortieralgorithmen eingeführt: Blasensortierung, Auswahlsortierung und Sortierung einfügen. Obwohl diese Sortiermethoden einfach sind, können sie uns helfen, die Ideen für grundlegende Sortieralgorithmus zu beherrschen. In der tatsächlichen Entwicklung können wir die entsprechende Sortiermethode entsprechend den spezifischen Bedürfnissen auswählen. Für eine effizientere Sortierung können Sie PHP-integrierte Sortierfunktionen wie Sort () und Usort () in Betracht ziehen.