Heim > Backend-Entwicklung > PHP-Tutorial > Verwenden Sie PHP, um vier gängige Sortieralgorithmen und ihre Implementierungsprinzipien zu implementieren

Verwenden Sie PHP, um vier gängige Sortieralgorithmen und ihre Implementierungsprinzipien zu implementieren

巴扎黑
Freigeben: 2016-11-23 11:56:09
Original
1034 Leute haben es durchsucht


******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 "
";

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