Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert den Merge-Sort-Algorithmus (Codebeispiel)

PHP implementiert den Merge-Sort-Algorithmus (Codebeispiel)

藏色散人
藏色散人Original
2019-03-14 09:37:543789Durchsuche

Merge Sort (auch Merge Sort genannt) ist ein Sortieralgorithmus, der auf dem O (n log n)-Vergleich basiert. Die meisten Implementierungen erzeugen eine stabile Sortierung, was bedeutet, dass die Implementierung die Eingabereihenfolge gleicher Elemente in der sortierten Ausgabe beibehält.

PHP implementiert den Merge-Sort-Algorithmus (Codebeispiel)

Jetzt stellen wir Ihnen vor, wie Sie PHP verwenden, um den Zusammenführungssortierungsalgorithmus zu implementieren.

PHP-Codebeispiel lautet wie folgt:

<?php
function merge_sort($my_array){
    if(count($my_array) == 1 ) return $my_array;
    $mid = count($my_array) / 2;
    $left = array_slice($my_array, 0, $mid);
    $right = array_slice($my_array, $mid);
    $left = merge_sort($left);
    $right = merge_sort($right);
    return merge($left, $right);
}
function merge($left, $right){
    $res = array();
    while (count($left) > 0 && count($right) > 0){
        if($left[0] > $right[0]){
            $res[] = $right[0];
            $right = array_slice($right , 1);
        }else{
            $res[] = $left[0];
            $left = array_slice($left, 1);
        }
    }
    while (count($left) > 0){
        $res[] = $left[0];
        $left = array_slice($left, 1);
    }
    while (count($right) > 0){
        $res[] = $right[0];
        $right = array_slice($right, 1);
    }
    return $res;
}
$test_array = array(100, 54, 7, 2, 5, 4, 1);
echo "原始数组 : ";
echo implode(&#39;, &#39;,$test_array );
echo "\n排序后数组:";
echo implode(&#39;, &#39;,merge_sort($test_array))."\n";

Ausgabe:

原始数组 : 100, 54, 7, 2, 5, 4, 1 
排序后数组:1, 2, 4, 5, 7, 54, 100

Einführung zugehöriger Funktionen:

array_slice() Funktion in Array Nimmt einen Wert basierend auf der Bedingung und gibt ihn zurück.

array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = FALSE ]] ) : array

array_slice() gibt eine Sequenz in dem durch die Offset- und Längenparameter angegebenen Array-Array zurück. Die Funktion

implode() wandelt den Wert eines eindimensionalen Arrays in einen String um.

Verwandte Empfehlungen: „PHP-Tutorial

Dieser Artikel ist eine Einführung in die Methode zur Implementierung des Zusammenführungssortierungsalgorithmus in PHP. Ich hoffe, dass er für Freunde hilfreich sein wird in Not!

Das obige ist der detaillierte Inhalt vonPHP implementiert den Merge-Sort-Algorithmus (Codebeispiel). 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