ホームページ  >  記事  >  バックエンド開発  >  PHPで選択ソートを実装するにはどうすればよいですか?

PHPで選択ソートを実装するにはどうすればよいですか?

藏色散人
藏色散人オリジナル
2019-03-06 13:57:423052ブラウズ

選択ソートは バブル ソートをベースに改良され、リストを通過するたびに 1 回のパス交換のみが実行されます。簡単に言えば、選択ソートの原理は、毎回ソート対象のデータ要素から最小 (または最大) の要素を選択し、ソート対象のすべてのデータ要素がなくなるまでシーケンスの先頭にそれを格納することです。選択ソートは不安定なソート方法です。

PHPで選択ソートを実装するにはどうすればよいですか?

PHP 選択ソートのコード例は次のとおりです:

<?php

function selection_sort($data)
{
    for($i=0; $i<count($data)-1; $i++) {
        $min = $i;
        for($j=$i+1; $j<count($data); $j++) {
            if ($data[$j]<$data[$min]) {
                $min = $j;
            }
        }
        $data = swap_positions($data, $i, $min);
    }
    return $data;
}

function swap_positions($data1, $left, $right) {
    $backup_old_data_right_value = $data1[$right];
    $data1[$right] = $data1[$left];
    $data1[$left] = $backup_old_data_right_value;
    return $data1;
}
$my_array = array(3, 0, 2, 5, -1, 4, 1);
echo "原始数组:\n";
echo implode(&#39;, &#39;,$my_array );
echo "\n排序后数组:\n";
echo implode(&#39;, &#39;,selection_sort($my_array)). PHP_EOL;

出力:

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

この記事は PHP についてです。選択ソートの実装方法が紹介されているので、必要な友人の役に立てば幸いです!

以上がPHPで選択ソートを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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