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.
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:
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(', ',$test_array ); echo "\n排序后数组\n:"; echo implode(', ',combSort($test_array)). PHP_EOL;
Ausgabe:
原始数组 : 3, 0, 2, 5, -1, 4, 1 排序后数组 :-1, 0, 1, 2, 3, 4, 5
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!