ホームページ  >  記事  >  バックエンド開発  >  PHPでソートアルゴリズムを実装する方法

PHPでソートアルゴリズムを実装する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-10-06 10:33:065488ブラウズ

ソート アルゴリズムを実装する

php メソッド: 1. バブル ソート、2 つずつ比較、各サイクルの最後の要素を比較する必要はありません; 2. 選択ソート、基本値として 1 つを選択し、残り こちらと比較して位置を変更してください。

PHPでソートアルゴリズムを実装する方法

#ソート アルゴリズムを実装する php メソッド:

1. バブル ソート:

ペアを比較する場合、最後の要素はすでに最大または最小であるため、各サイクルの最後の要素を比較する必要はありません。

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. 選択の並べ替え:

基本値として 1 つを選択し、残りをこの値と比較して、位置を切り替えます。

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. クイックソート:

原理は、ルーラーの値を取り出し、それを左右の 2 つの配列に分割し、それぞれ比較することです。

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. 挿入ソート:

前の数値がすべて正しい順序であると仮定すると、n 番目の数値を

function charuSort ($list)
{
    $len = count($list);
    for ($i = 1; $i < $len; $i++) {
        $tmp = $list[$i];//获取对比元素
        for ($j = $i - 1; $j > 0; $j--) {
            if ($list[$j] > $tmp) {
                $list[$j + 1] = $list[$j];
                $list[$j] = $tmp;
            } else {
                break;
            }
        }
    }
    return $list;
}
## の順序に挿入する必要があります。

#関連学習の推奨:
php プログラミング

(ビデオ)

以上がPHPでソートアルゴリズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。