PHPを使用して選択ソートアルゴリズムを実装する方法

WBOY
リリース: 2023-07-11 06:06:01
オリジナル
769 人が閲覧しました

PHP を使用して選択並べ替えアルゴリズムを実装する方法

選択並べ替えは、シンプルで直感的な並べ替えアルゴリズムです。その基本的な考え方は、各パスで並べ替えられるデータ要素から最小 (または最大) を選択することです。要素は、並べ替えられるすべてのデータ要素がなくなるまで、結果シーケンスの先頭に格納されます。以下では、PHP コードを使用して選択ソート アルゴリズムを実装し、詳細に説明します。

まず、選択ソート アルゴリズムの実装手順を見てみましょう。

  1. 最初の要素を最小値 (デフォルト) として、ソート対象の配列全体をスキャンします。 。
  2. 最小値に従って、残りの要素を走査し、現在の最小値より小さい要素を見つけて、最小値を更新します。
  3. 最小値を現在の移動位置に置き換えます。
  4. 配列の並べ替えが完了するまで、手順 2 ~ 3 を繰り返します。

以下は、PHP を使用して選択並べ替えアルゴリズムを実装するコード例です:

function selectionSort($arr) {
    $len = count($arr);
    
    for($i = 0; $i < $len - 1; $i++) {
        $minIndex = $i;
        
        for($j = $i + 1; $j < $len; $j++) {
            if($arr[$j] < $arr[$minIndex]) {
                $minIndex = $j;
            }
        }
        
        // Swap the minimum value with the current position
        $temp = $arr[$minIndex];
        $arr[$minIndex] = $arr[$i];
        $arr[$i] = $temp;
    }
    
    return $arr;
}

// Test the selectionSort function
$testArray = [64, 25, 12, 22, 11];
echo "Before sorting: ";
print_r($testArray);
echo "After sorting: ";
print_r(selectionSort($testArray));
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります:

Before sorting: Array ( [0] => 64 [1] => 25 [2] => 12 [3] => 22 [4] => 11 )
After sorting: Array ( [0] => 11 [1] => 12 [2] => 22 [3] => 25 [4] => 64 )
ログイン後にコピー

これは選択による並べ替えです。配列を並べ替えるアルゴリズムの結果です。次に、コードの具体的な実装手順を説明します。

コードでは、selectionSort という名前の関数を定義します。この関数は、並べ替えられる配列をパラメーターとして受け取り、並べ替えられた配列を返します。

まず、count 関数を使用して配列の長さを取得し、それを変数 $len に割り当てます。次に、2 つのネストされた for ループを使用して、配列全体を反復処理します。

外側の for ループでは、変数 $minIndex を定義して、現在の最小値のインデックスを保存します。デフォルトは現在のループ変数 です。 $i。内部の for ループでは、現在の要素のサイズと最小値​​を比較して、最小値のインデックスを更新します。

内側の for ループが終了すると、現在の最小値と現在の位置が交換されます。一時変数 $temp を使用して、2 つの要素の値を交換します。

最後に、ソートされた配列を返します。

選択並べ替えアルゴリズムの時間計算量は O(n^2) です。ここで、n は並べ替えられる配列の長さです。これは、各走査で残りの要素の最小値を見つけて、スワップ操作を実行する必要があるためです。配列の初期状態に関係なく、n-1 回の走査を実行する必要があります。

この記事のコード例と説明を通じて、選択ソート アルゴリズムの実装プロセスをより深く理解し、実際の開発で柔軟に使用できるようになることを願っています。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!