ITパスポート 令和7年度 問98 の解説テクノロジ系/アルゴリズムとプログラミング
4個の要素から成るデータの並びを、次の手順を繰り返して昇順に整列するとき、整列が終了するまでに(1)から(3)の一連の手順は、何回実行されるか。ここで、最初はデータの並び全体を整列対象とする。 データの並び: [27, 42, 33, 12] [手順] (1) 整列対象中の要素の最大の値を選び、最後の要素と入れ替える。 (2) 最後の要素を整列対象から外す。 (3) 整列対象に要素が1個以上残っていれば、(1)から(3)の一連の手順を実行する。残っていなければ、整列完了なので終了する。
この設問が問うていること
選択ソート(基本選択法)に基づく整列アルゴリズムのループ実行回数をトレースする設問です。
総合解説
手順に従って配列サイズと処理を追跡します。初期状態:整列対象は `[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です。
アルゴリズムとプログラミングをまとめて学ぶ
アルゴリズムとプログラミング 重点教科書 →
データ構造・擬似言語・探索と整列アルゴリズム・プログラム言語・HTML/XML/JSONまで、ITパスポートのアルゴリズム分野を体系的に解説します。