ホームページ >バックエンド開発 >PHPチュートリアル >PHP カウントソートアルゴリズムの実装 (コード例)

PHP カウントソートアルゴリズムの実装 (コード例)

藏色散人
藏色散人オリジナル
2019-03-11 10:30:303204ブラウズ

カウンティング ソートは、小さな整数キーに基づいてオブジェクトのセットを並べ替えるアルゴリズム、つまり整数並べ替えアルゴリズムです。異なるキー値を持つオブジェクトの数を数え、これらの数値の算術演算を使用することで、出力シーケンス内の各キー値の位置を決定します。

PHP カウントソートアルゴリズムの実装 (コード例)

#カウントソートは、キーの変更が要素の合計数を超えない場合にのみ使用に適しています。これは、大きなキーを効率的に処理できる別のソート アルゴリズム (基数ソート) のサブルーチンとしてよく使用されます。

つまり、カウンティング ソートは安定した線形時間ソート アルゴリズムです。カウント ソートでは追加の配列 C を使用します。ここで、i 番目の要素は、ソートされる配列 A 内の値が i に等しい要素の数です。次に、配列 C に従って、A の要素を正しい位置に配置します。

カウント並べ替えアルゴリズムの通常の実装手順は次のとおりです:

1. 並べ替える配列内の最大要素と最小要素を見つけます。 2 . 配列内の値 i を持つ各要素の出現数をカウントし、それを配列 C の i 番目の項目に格納します;

3. すべてのカウントを累積します (C の最初の要素から開始して、 each 前の項目に項目を追加します);

4. ターゲット配列を逆に埋めます: 各要素 i を新しい配列の C[i] 番目の項目に置き、毎回 C[i] を追加します。要素を配置します。1を減算します。

PHP カウントソートアルゴリズムの実装コード例は次のとおりです:

<?php
function counting_sort($my_array, $min, $max)
{
    $count = array();
    for($i = $min; $i <= $max; $i++)
    {
        $count[$i] = 0;
    }

    foreach($my_array as $number)
    {
        $count[$number]++;
    }
    $z = 0;
    for($i = $min; $i <= $max; $i++) {
        while( $count[$i]-- > 0 ) {
            $my_array[$z++] = $i;
        }
    }
    return $my_array;
}
$test_array = array(3, 0, 2, 5, -1, 4, 1);
echo "原始数组 :\n";
echo implode(&#39;, &#39;,$test_array );
echo "\n排序后数组\n:";
echo implode(&#39;, &#39;,counting_sort($test_array, -1, 5)). PHP_EOL;
出力:

原始数组 : 3, 0, 2, 5, -1, 4, 1 
排序后数组 :-1, 0, 1, 2, 3, 4, 5

関連推奨事項: "

PHP チュートリアル

>>この記事は、PHP のカウントソートアルゴリズムの実装方法を紹介するもので、困っている方の参考になれば幸いです。

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

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