Heim  >  Artikel  >  Backend-Entwicklung  >  Anleitung zum Schreiben eines benutzerdefinierten Sortieralgorithmus für PHP-Arrays

Anleitung zum Schreiben eines benutzerdefinierten Sortieralgorithmus für PHP-Arrays

WBOY
WBOYOriginal
2024-04-27 18:12:01514Durchsuche

Wie schreibe ich einen benutzerdefinierten PHP-Array-Sortieralgorithmus? Blasensortierung: Sortiert ein Array durch Vergleichen und Austauschen benachbarter Elemente. Auswahlsortierung: Wählen Sie jedes Mal das kleinste oder größte Element aus und tauschen Sie es mit der aktuellen Position aus. Einfügungssortierung: Elemente nacheinander in einen geordneten Teil einfügen.

PHP 数组自定义排序算法的编写指南

Anleitung zum Schreiben eines benutzerdefinierten Sortieralgorithmus für PHP-Arrays

Einführung
Array-Sortierung ist eine häufige Aufgabe in der Programmierung, die es uns ermöglicht, die Elemente in einem Array basierend auf bestimmten Kriterien neu zu organisieren. PHP bietet eine Vielzahl integrierter Sortieralgorithmen, aber manchmal müssen wir Arrays auf der Grundlage einer benutzerdefinierten Logik sortieren, was erfordert, dass wir unseren eigenen benutzerdefinierten Sortieralgorithmus schreiben.

Bubble Sort
Bubble Sort ist ein einfacher Sortieralgorithmus, der ein Array sortiert, indem er wiederholt benachbarte Elemente vergleicht und ihre Positionen austauscht.

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;
            }
        }
    }
}

Auswahlsortierung
Auswahlsortierung ist ein Sortieralgorithmus, der auf der Auswahl des kleinsten oder größten Elements und dessen Austausch mit seiner aktuellen Position basiert.

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;
    }
}

Einfügungssortierung
Einfügungssortierung ist ein Sortieralgorithmus, der auf dem Einfügen von Elementen nacheinander in einen geordneten Teil basiert.

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;
    }
}

Praktischer Fall
Lassen Sie uns das folgende PHP-Array in aufsteigender Reihenfolge mithilfe des Blasensortierungsalgorithmus sortieren:

$arr = [5, 2, 8, 3, 1];

Rufen Sie die Blasensortierungsfunktion auf:

bubbleSort($arr);

Das sortierte Array:

[1, 2, 3, 5, 8]

Das obige ist der detaillierte Inhalt vonAnleitung zum Schreiben eines benutzerdefinierten Sortieralgorithmus für PHP-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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