Heim >Backend-Entwicklung >PHP-Problem >PHP-Array-Sortierung ohne Funktion

PHP-Array-Sortierung ohne Funktion

WBOY
WBOYOriginal
2023-05-19 09:13:37605Durchsuche

In PHP ist ein Array ein allgemeiner Datentyp, der mehrere Werte speichern und durch Indizierung auf diese Werte zugreifen kann. Wenn wir ein Array sortieren müssen, verwenden wir normalerweise die in PHP integrierten Funktionen wie sort(), rsort(), asort() usw., mit denen wir das Array einfach sortieren können.

Manchmal müssen wir das Array jedoch möglicherweise sortieren, ohne die Sortierfunktion zu verwenden. Dies kann in den folgenden Situationen passieren:

  1. Die benutzerdefinierte Sortierung eines Arrays unter Verwendung der Rückruffunktion der Sortierfunktion ist ineffizient.
  2. Ich möchte die Verwendung integrierter PHP-Funktionen vermeiden, um die Lesbarkeit und Leistung des Codes zu verbessern.

Wie können wir in diesem Fall das Array in PHP sortieren? In diesem Artikel werden einige Array-Sortiermethoden vorgestellt, die auf der nativen PHP-Sprache basieren.

  1. Bubble Sort

Bubble Sort ist ein grundlegender Sortieralgorithmus, der Arrays durch Vergleich und Austausch benachbarter Elemente sortiert. Die spezifische Implementierung ist wie folgt:

function array_bubble_sort($arr){
    $len=count($arr);
    for($i=0;$i<$len-1;$i++){
        for($j=0;$j<$len-1-$i;$j++){
            if($arr[$j]>$arr[$j+1]){
                $temp=$arr[$j+1];
                $arr[$j+1]=$arr[$j];
                $arr[$j]=$temp;
            }
        }
    }
    return $arr;
}

Im obigen Code verwenden wir zwei for-Schleifen. Die äußere Schleife steuert die Anzahl der Vergleiche und die innere Schleife wird zum Vergleichen und Austauschen benachbarter Elemente verwendet. Auf diese Weise können wir das Array sortieren, ohne die Sortierfunktion zu verwenden.

  1. Insertion Sort

Insertion Sort ist ein einfacher und effektiver Sortieralgorithmus, der ein Array sortieren kann, indem jedes Element einzeln in das sortierte Array eingefügt wird. Die spezifische Implementierung ist wie folgt:

function array_insertion_sort($arr){
    $len=count($arr);
    for($i=1;$i<$len;$i++){
        $temp=$arr[$i];
        $j=$i-1;
        while($j>=0&&$arr[$j]>$temp){
            $arr[$j+1]=$arr[$j];
            $j--;
        }
        $arr[$j+1]=$temp;
    }
    return $arr;
}

Im obigen Code verwenden wir eine for-Schleife und eine while-Schleife. Die for-Schleife wird verwendet, um das einzufügende Element auszuwählen, und die while-Schleife wird verwendet, um es in das richtige einzufügen Position. Auf diese Weise können wir das Array auch sortieren, ohne die Sortierfunktion zu verwenden.

  1. Quick Sort

Quick Sort ist ein häufig verwendeter Sortieralgorithmus, der ein Array sortiert, indem es in zwei Unterarrays unterteilt wird. Die spezifische Implementierung lautet wie folgt:

function array_quick_sort($arr){
    $len=count($arr);
    if($len<=1){
        return $arr;
    }
    $pivot=$arr[0];
    $left=[];
    $right=[];
    for($i=1;$i<$len;$i++){
        if($arr[$i]<=$pivot){
            $left[]=$arr[$i];
        }else{
            $right[]=$arr[$i];
        }
    }
    return array_merge(array_quick_sort($left),[$pivot],array_quick_sort($right));
}

Im obigen Code verwenden wir Rekursion, um eine schnelle Sortierung zu implementieren. Zuerst wählen wir ein Pivot-Element als Pivot aus, durchlaufen dann das Array und platzieren die kleineren Elemente im linken Unterarray und die größeren Elemente im rechten Unterarray. Anschließend sortieren wir das linke und das rechte Unterarray durch Rekursion. und schließlich setzen Sie sie mit dem Basiselement zusammen. Ebenso ist es möglich, ein Array zu sortieren, ohne die Sortierfunktion zu verwenden.

Zusammenfassung

Die oben genannten drei Sortieralgorithmen können PHP-Arrays sortieren, ohne Sortierfunktionen zu verwenden. Obwohl diese Algorithmen möglicherweise nicht so effizient sind wie die integrierten Sortierfunktionen von PHP, können sie die Lesbarkeit und das Verständnis unseres Codes verbessern. Wenn Sie eine benutzerdefinierte Sortiermethode benötigen oder die Verwendung integrierter PHP-Funktionen vermeiden, versuchen Sie, diese Algorithmen zum Sortieren Ihres Arrays zu verwenden.

Das obige ist der detaillierte Inhalt vonPHP-Array-Sortierung ohne Funktion. 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