******Einfügungssortierung (eindimensionales Array)
1, ab dem ersten Element kann davon ausgegangen werden, dass das Element sortiert wurde
2, nehmen Sie das nächste Element heraus und scannen Sie von hinten nach vorne in der sortierten Elementsequenz
3, wenn das Element (sortiert) größer als das neue Element ist, verschieben Sie das Element in das nächste Position
4, wiederholen Sie Schritt 3, bis Sie die Position gefunden haben, an der das sortierte Element kleiner oder gleich dem neuen Element ist
5, fügen Sie das neue Element an dieser Position ein
6, wiederholen Sie Schritt 2
*/
function insert_sort($arr)
{
$len = count($arr);
für ($i=1; $i<$len; $i )
{
$tmp = $arr[$i];
$j = $i -1;
while ($arr[$j] > $tmp && $j>=0)
arr[$j];
$j--; >
Return $arr;
}
/*
******Blasensortierung (eindimensionales Array)
1 , vergleiche benachbarte Elemente. Wenn das erste größer als das zweite ist, tauschen Sie beide aus.
2. Machen Sie die gleiche Arbeit für jedes Paar benachbarter Elemente, vom ersten Paar am Anfang bis zum letzten Paar am Ende. Zu diesem Zeitpunkt sollte das letzte Element die größte Zahl sein.
3. Wiederholen Sie die obigen Schritte für alle Elemente außer dem letzten.
4. Wiederholen Sie die obigen Schritte jedes Mal für immer weniger Elemente, bis keine Zahlenpaare mehr zum Vergleichen vorhanden sind.
*/
function bubble_sort($arr)
{
$len = count($arr);
for ( $i=0; $i<$len; $i )
{
für ($j=$len-1; $j>$i; $j--)
{
if ($arr[$j-1] > $arr[$j])
{
$tmp = $arr[$ j-1];
$arr[$j-1] = $arr[$j]; > }
return $arr ;
}
/*
***** *Auswahlsortierung (eindimensionales Array)
1, suchen Sie zuerst das kleinste Element in Speichern Sie die unsortierte Sequenz an der Startposition der sortierten Sequenz,
2, und wählen Sie dann die verbleibenden unsortierten Elemente aus Weiter aus, um das kleinste Element zu finden und es am Ende der sortierten Sequenz einzufügen.
3 usw., bis alle Elemente sortiert sind.
*/
function select_sort($arr){
$count = count($arr);
for($i=0; $ i<$count-1; $i )
{
$k = $i;
for($j=$i 1; $j<$count; $j )
j;
}
}
if ($k != $i)
{
$tmp = $arr[ $i];
$arr[$i] = $arr[$k];
}
return $arr;
}
/*
******Schnelle Sortierung (eindimensionales Array)
1, wählen Sie zuerst zufällig einen Mittelwert aus
2, geben Sie links den kleineren Wert als den Mittelwert und rechts den größeren Wert als den Mittelwert ein,
3, dann Rufen Sie dann die Schritte 1 und 2 rekursiv auf der linken Seite auf und rechten Daten, um die linken, mittleren und rechten Daten zusammenzuführen.
*/
Funktion quick_sort($arr)
{
if (count($arr) <= 1)
{
return $arr;
}
$key = $arr[0];
$left_arr = array();
$right_arr = array();
for ($i=1; $i
{
if ($arr[$i] <= $key) $left_arr[] = $arr[$i] ;
else $right_arr[] = $arr[$i];
}
$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr, $key, $right_arr);
}
$a = array(123,321,432,341345,45234, 53,493);
echo "
";<br><br>print_r(select_sort($a));<br><br>print_r(bubble_sort($a));<br> <br>print_r(insert_sort($a));<br><br>print_r(quick_sort($a));<br><br>echo "";