98の正解: テクノロジ系アルゴリズムとプログラミング

4個の要素から成るデータの並びを、次の手順を繰り返して昇順に整列するとき、整列が終了するまでに(1)から(3)の一連の手順は、何回実行されるか。ここで、最初はデータの並び全体を整列対象とする。 データの並び: [27, 42, 33, 12] [手順] (1) 整列対象中の要素の最大の値を選び、最後の要素と入れ替える。 (2) 最後の要素を整列対象から外す。 (3) 整列対象に要素が1個以上残っていれば、(1)から(3)の一連の手順を実行する。残っていなければ、整列完了なので終了する。

この設問が問うていること

選択ソート(基本選択法)に基づく整列アルゴリズムのループ実行回数をトレースする設問です。

2
選択肢の解説: 途中で処理を終了する判定はないため、2回では終了せず不適切です。
3
選択肢の解説: 3回目の実行が終わった段階でも整列対象に要素が1個(12)残っており、条件「1個以上」を満たすため、ここで終了せず不適切です。
4正解
選択肢の解説: 各ループで整列対象の要素数が1ずつ減り(4個→3個→2個→1個→0個)、対象が0個になるまでに一連の手順がちょうど4回実行されるため適切です。
5
選択肢の解説: 4回目の実行後には整列対象の要素数が0個になるため、5回目は実行されず不適切です。

総合解説

手順に従って配列サイズと処理を追跡します。初期状態:整列対象は `[27, 42, 33, 12]`(要素数4)。1回目実行:最大値42と最後尾12を入れ替えて `[27, 12, 33, 42]` になり、42を除外。残りは `[27, 12, 33]`(要素数3 ≧ 1)。2回目実行:最大値33はそのまま位置を維持し、33を除外。残りは `[27, 12]`(要素数2 ≧ 1)。3回目実行:最大値27と最後尾12を入れ替えて `[12, 27]` になり、27を除外。残りは `[12]`(要素数1 ≧ 1)。4回目実行:最大値12の位置を維持し、12を除外。残りは `[]`(要素数0、終了)。したがって、手順は計4回実行され、正解は選択肢cです。

執筆・監修: 運営者 KH更新日: 2026-07-05出典: IPA公式PDF(過去問題・解答例)
AIAIにその場で質問(デモ応答)

こんな聞き方もできます(タップで質問)

令和7年度を本番同様のCBT形式で解いてみよう

無料登録なしでも一部体験可能。登録すれば採点・弱点分析・AI教科書まで使えます。

令和7年度の過去問CBTを解く