ITパスポート試験
令和7年 第98問
問98
4個の要素から成るデータの並びを、次の手順を繰り返して昇順に整列するとき、整列が終了するまでに (1) から (3) の一連の手順は、何回実行されるか。ここで、最初はデータの並び全体を整列対象とする。
データの並び:[27, 42, 33, 12]
手順
(1) 整列対象中の要素の最大の値を選び、最後の要素と入れ替える。
(2) 最後の要素を整列対象から外す。
(3) 整列対象に要素が1個以上残っていれば、(1)~(3) の一連の手順を実行する。残っていなければ、整列完了なので終了する。
2 | |
3 | |
4 | |
5 |
(令和7年 ITパスポート試験 第98問 テクノロジ系/アルゴリズムとプログラミング)
解説
この問題の正解率:30.4%(やや低い)
問題の手順(選択ソートの要領)
「整列対象」の最大値を最後に送る、という処理を繰り返す。
毎回、「整列対象」の右端が確定し、次の処理ではそれ以外を整列対象とする。
実際の処理手順を追う
初期データ:[27, 42, 33, 12]
1回目の繰り返し
対象:[27, 42, 33, 12]
最大値:42
42を最後(12)と入れ替え → [27, 12, 33, 42]
42を確定・対象外へ
2回目
対象:[27, 12, 33]
最大値:33
33を最後(12)と入れ替え → [27, 12, 33, 42]
33を確定・対象外へ
3回目
対象:[27, 12]
最大値:27
27を最後(12)と入れ替え → [12, 27, 33, 42]
27を確定・対象外へ
4回目
対象:[12]
残り1個なので何もしない(ここで終了)
よって、(1)~(3)の一連の手順は「4回」実行されます。

【間違いやすいポイント】
通常の選択ソートの理屈だとn-1回だが、この問題は「要素1個になった時も手順を実行する」ためn回になる。