ホームページ >毎日のプログラミング >PHPの知識 >選択ソートアルゴリズムの詳細な分析
選択ソート
選択ソートは、最も安定した並べ替えアルゴリズムの 1 つであり、使用する場合はデータ サイズが小さいほど優れています。理論的に言えば、選択ソートは、ほとんどの人がソート時に考える最も一般的な方法でもあります。
選択ソートは、シンプルで直感的なソートアルゴリズムです。その仕組みは次のとおりです:
配列をループし、その過程で最大値と配列内のその位置を見つけます。次に、最大値を持つユニットの位置を配列の最後のユニットと「交換」します。これを行った後、配列内の最大値を最後の位置に配置する必要があります。
上記のプロセスで残りのデータを引き続き走査し、同じことを行います。このとき、残りの部分の最大値は、全体として最後から 2 番目の位置に配置することもできます。 。
などなど。 。 。 。 。 。
イラスト:
オリジナル配列 |
18 | 22 |
12 | 15 | 23 | 9 |
初めての旅行 | 18 | 22 | 12 | 15 | 9 | 23 |
2回目の旅行 | 18 | 9 | 12 | 15 | 22 | 2 3 |
3回目の旅行 | 15 | 9 | 12 | 18 | 22 | 23 |
4回目の旅行 | 12 | 9 | 15 | 18 | 22 | 2 3 |
5回目の旅行 | 9 | 12 | 15 | 18 | 22 | 23 |
コードは次のとおりです:
<?php $arr1 = array(18,22,12,15,23,9); $n = count($arr1); for ($i=0; $i < $n-1; $i++) { //找最大值 $max = $arr1[0]; $max_key = 0; for ($k=0; $k < $n - $i; $k++) { if ($arr1[$k] > $max) { $max = $arr1[$k]; $max_key = $k; } } //交换 $temp = $arr1[$max_key]; $arr1[$max_key] = $arr1[$n-1-$i]; $arr1[$n-1-$i] = $temp; }
ルールの概要: 1. 最大のものを見つける開始値から終了値 (および添え字)、交換回数は $n-1、$n は配列の長さ
2 です。毎回行う必要があることは次のとおりです。 a) 最大値を見つけます。 ) そして、この旅行の最後の項目との最大値交換を追加します 3. 各旅行の最大値を見つけるためのデータの数は、前の旅行より 1 つ減り、そのうちの最初の旅行には $n があります。以上が選択ソートアルゴリズムの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。