Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie einen Sortieralgorithmus in PHP

So implementieren Sie einen Sortieralgorithmus in PHP

coldplay.xixi
coldplay.xixiOriginal
2020-10-06 10:33:065487Durchsuche

So implementieren Sie einen Sortieralgorithmus in PHP: 1. Blasensortierung, zwei mal zwei vergleichen, das letzte Element in jedem Zyklus muss nicht verglichen werden 2. Auswahlsortierung, wählen Sie eines als Grundwert aus und vergleichen Sie den Rest damit. und dann die Position wechseln.

So implementieren Sie einen Sortieralgorithmus in PHP

So implementieren Sie den Sortieralgorithmus in PHP:

1. Blasensortierung:

Beim Vergleich von Paaren ist es nicht erforderlich, das letzte Element in jedem Zyklus zu vergleichen, da dies bereits für das letzte Element der Fall ist been Ist das Größte oder Kleinste.

function maopaoSort ($list)
{
    $len = count($list);
    for ($i = 0; $i < $len - 1; $i++) {
        for ($j = 0; $j < $len - $i - 1; $j++) {
            if ($list[$j] > $list[$j + 1]) {
                $tmp = $list[$j];
                $list[$j] = $list[$j + 1];
                $list[$j + 1] = $tmp;
            }
        }
    }
    return $list;
}

2. Auswahlsortierung:

Wählen Sie einen als Grundwert aus, vergleichen Sie den Rest mit diesem und tauschen Sie dann die Positionen.

function xuanzeSort ($list)
{
    $len = count($list);
    for ($i = 0; $i < $len - 1; $i++) {
        $pos = $i;
        for ($j = $i + 1; $j < $len; $j++) {
            if ($list[$pos] > $list[$j]) {
                $pos = $j;
            }
        }
        if ($pos != $i) {
            $tmp = $list[$pos];
            $list[$pos] = $list[$i];
            $list[$i] = $tmp;
        }
    }
    return $list;
}

3. Schnelle Sortierung:

Das Prinzip besteht darin, einen Linealwert herauszunehmen und ihn dann in zwei Arrays, links und rechts, aufzuteilen und sie jeweils zu vergleichen

function kuaisuSort ($list)
{
    $len = count($list);
    if ($len <= 1) {//递归出口
        return $list;
    }
    $base = $list[0];//选择一个比较值
    $leftList = $rightList = [];
    for ($i = 1; $i < $len; $i++) {
        if ($base > $list[$i]) {
            $leftList[] = $list[$i];
        } else {
            $rightList[] = $list[$i];
        }
    }
    //递归分别再处理左右两边的数组
    $leftList = kuaisuSort($leftList);
    $rightList = kuaisuSort($rightList);
    return array_merge($leftList, [$base], $rightList);
}

4 Gehen Sie davon aus, dass die vorherigen Zahlen alle der Reihe nach sortiert sind. Sie müssen die n-te Zahl in die Reihenfolge einfügen

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Sortieralgorithmus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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