選択法の比較回数について考えます。次の図はデータ数と比較回数を求めた図です。
データ数が2のときの比較回数
基準が0番目の時に1回比較し条件に応じて交換を行えば並べ替えが完了します。
そのため、データ数が2のときは並べ替えが終わるまでに比較する回数は1回です。
データ数が3のときの比較回数
基準が0番目の時に
- 0番目と1番目の要素の比較
- 0番目と2番目の要素の比較
を行うため比較回数は2回。
そのため、データ数が3のときは並べ替えが終わるまでに比較する回数は3回です。
データ数が4のときの比較回数
基準が0番目の時に
- 0番目と1番目の要素の比較
- 0番目と2番目の要素の比較
- 0番目と3番目の要素の比較
を行うため比較回数は3回。
基準が1番目の時に
- 1番目と2番目の要素の比較
- 1番目と3番目の要素の比較
を行うため比較回数は1回。
そのため、データ数が4のときは並べ替えが終わるまでに比較する回数は6回です。
データ数と比較回数をまとめていくと次のようになります。
-
データ数2のとき ⋯ 1回
-
データ数3のとき ⋯ 2 + 1 = 3回
-
データ数4のとき ⋯ 3 + 2 + 1 = 6回
-
データ数5のとき ⋯ 4 + 3 + 2 + 1 = 10回
比較回数の合計は、データ数-1から1までを合計していますね。
そうですね。では、データ数が6のときの比較回数は何回でしょうか?
6から1を引けばいいんだから⋯5 + 4 + 3 + 2 + 1 = 15なので、15回ですか?
はい、そうです。比較回数の合計は計算式で求めることもできます。
選択法の比較回数は次の計算式で求めることができます。
例えば、データ数が8件のときは次のように比較回数は計算します。
8件のときの比較回数 = 8 × ( 8 - 1 ) ÷ 2 = 8 × 7 ÷ 2 = 28回
ホントだ。同じ28回になった。
でも、なんか見たことのある式だな⋯