ホームページ >毎日のプログラミング >PHPの知識 >選択ソートアルゴリズムの詳細な分析

選択ソートアルゴリズムの詳細な分析

**熬夜选手
**熬夜选手オリジナル
2020-05-01 15:54:45348ブラウズ

選択ソート

選択ソートは、最も安定した並べ替えアルゴリズムの 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 サイトの他の関連記事を参照してください。

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