Implementierung des PHP Comb Sort-Algorithmus

藏色散人
Freigeben: 2023-04-05 14:38:02
Original
2949 Leute haben es durchsucht

Kammsortierung oder Kammsortierung ist eine Variation von Blasensortierung . Ähnlich wie Shell Sort vergrößert Comb Sort die Lücken, die bei Vergleichen und Austauschen verwendet werden. Einige Implementierungen verwenden die Einfügungssortierung, wenn das Intervall kleiner als eine bestimmte Zahl ist. Die Grundidee besteht darin, kleine Werte am Ende der Liste zu eliminieren, da diese bei der Blasensortierung die Sortierung erheblich verlangsamen. Und große Werte am Anfang der Liste verursachen keine Probleme bei der Blasensortierung.

Implementierung des PHP Comb Sort-Algorithmus

Wenn bei der Blasensortierung zwei beliebige Elemente verglichen werden, haben sie immer eine Lücke von 1. Die Grundidee der Kammsortierung besteht darin, dass die Lücke viel größer als 1 sein kann.

Das PHP-Kammsortierungsdiagramm lautet wie folgt:

Implementierung des PHP Comb Sort-Algorithmus

Das Codebeispiel lautet wie folgt:

<?php
function combSort($my_array){
    $gap = count($my_array);
    $swap = true;
    while ($gap > 1 || $swap){
        if($gap > 1) $gap /= 1.25;
        $swap = false;
        $i = 0;
        while($i+$gap < count($my_array)){
            if($my_array[$i] > $my_array[$i+$gap]){
                list($my_array[$i], $my_array[$i+$gap]) = array($my_array[$i+$gap],$my_array[$i]);
                $swap = true;
            }
            $i++;
        }
    }
    return $my_array;
}
$test_array = array(3, 0, 2, 5, -1, 4, 1);
echo "原始数组 :\n";
echo implode(&#39;, &#39;,$test_array );
echo "\n排序后数组\n:";
echo implode(&#39;, &#39;,combSort($test_array)). PHP_EOL;
Nach dem Login kopieren

Ausgabe:

原始数组 : 3, 0, 2, 5, -1, 4, 1
排序后数组 :-1, 0, 1, 2, 3, 4, 5
Nach dem Login kopieren

In diesem Artikel geht es um die Implementierungsmethode des PHP Comb Sort-Algorithmus. Ich hoffe, dass er Freunden in Not hilfreich sein wird!

Das obige ist der detaillierte Inhalt vonImplementierung des PHP Comb Sort-Algorithmus. 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