Heim  >  Artikel  >  Backend-Entwicklung  >  Codebeispiel für die PHP-Implementierung der Auswahlsortierung

Codebeispiel für die PHP-Implementierung der Auswahlsortierung

不言
不言nach vorne
2019-01-26 10:30:483303Durchsuche

Dieser Artikel bietet Ihnen ein Codebeispiel für die Implementierung der Auswahlsortierung in PHP. Ich hoffe, dass er Ihnen als Referenz dienen wird.

Auswahlsortierung

Auswahlsortierung ist ein einfacher und intuitiver Sortieralgorithmus. So funktioniert es. Suchen Sie zunächst das kleinste (große) Element in der unsortierten Sequenz und speichern Sie es am Anfang der sortierten Sequenz. Suchen Sie dann weiterhin das kleinste (große) Element aus den verbleibenden unsortierten Elementen und fügen Sie es dann am Ende der sortierten Sequenz ein sortierte Reihenfolge. Und so weiter, bis alle Elemente sortiert sind.

Der Hauptvorteil der Auswahlsortierung hat mit der Datenverschiebung zu tun. Befindet sich ein Element an der richtigen Endposition, wird es nicht verschoben. Jedes Mal, wenn die Auswahlsortierung ein Elementpaar vertauscht, wird mindestens eines davon an seine endgültige Position verschoben. Das Sortieren einer Liste mit n Elementen erfordert also insgesamt höchstens n -1 Vertauschungen. Unter allen Sortiermethoden, die zum Verschieben von Elementen ausschließlich auf Austausch basieren, ist die Auswahlsortierung eine sehr gute

Eingeführt in Wikipedia. Bei der Blasensortierung und der Schnellsortierung, die in den ersten beiden Artikeln vorgestellt wurden, handelt es sich um Sortiermethoden, die vollständig auf dem Austausch beruhen, um Elemente zu verschieben.

Animationsdemonstration

Codebeispiel für die PHP-Implementierung der Auswahlsortierung

Codebeispiel für die PHP-Implementierung der Auswahlsortierung

Beispiel

<?php $arr = [33, 24, 8, 21, 2, 23, 3, 32, 16];

function selectSort($arr)
{
    $count = count($arr);

    if ($count < 2) {
        return $arr;
    }

    for ($i = 0; $i < $count - 1; $i++) {
        // 当前值的位置
        $key = $i;
        for ($k = $i + 1; $k < $count; $k++) {
            // 相邻值进行比较,条件成立替换当前值
            // 倒序 $arr[$key] < $arr[$k]
            if ($arr[$key] > $arr[$k]) {
                $key = $k;
            }
        }

        if ($key != $i) {
            // 交换位置
            $temp = $arr[$key];
            $arr[$key] = $arr[$i];
            $arr[$i] = $temp;
        }
    }

    return $arr;
}

print_r(selectSort($arr));
// Array ( [0] => 2 [1] => 3 [2] => 8 [3] => 16 [4] => 21 [5] => 23 [6] => 24 [7] => 32 [8] => 33 )

Das obige ist der detaillierte Inhalt vonCodebeispiel für die PHP-Implementierung der Auswahlsortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen