ITパスポート|アルゴリズムとプログラミング 問3
4個の要素から成るデータの並びを、次の手順を繰り返して昇順に整列するとき、整列が終了するまでに(1)から(3)の一連の手順は、何回実行されるか。ここで、最初はデータの並び全体を整列対象とする。
データの並び:[27, 42, 33, 12]
〔手順〕
- (1)
- 整列対象中の要素の最大の値を選び、最後の要素と入れ替える。
- (2)
- 最後の要素を整列対象から外す。
- (3)
- 整列対象に要素が1個以上残っていれば、(1)から(3)の一連の手順を実行する。残っていなければ、整列完了なので終了する。
正解:ウ
解説
1回実行するごとに整列対象が1個減り、対象が0個になったところで終了します。データの値に関係なく、要素の数だけ実行されます。
- 1回目
- 対象 [27, 42, 33, 12]。最大の42と最後の12を入れ替え、42を外す → 残り3個
- 2回目
- 対象 [27, 12, 33]。最大の33は最後にあるのでそのまま外す → 残り2個
- 3回目
- 対象 [27, 12]。27と12を入れ替え、27を外す → 残り1個
- 4回目
- 対象 [12]。12を外す → 残り0個なので終了
- イ 残り1個になった時点で終わると考えた場合の回数ですが、手順(3)では1個以上残っていれば続けます。
- ウ 正解。一連の手順は 4回 実行されます。
出典:令和7年度 ITパスポート試験 公開問題 問98(読点「,」を「、」に改変)