ITパスポート試験

問98

ITパスポート過去問 令和7年度(2025年)問98

4個の要素から成るデータの並びを,次の手順を繰り返して昇順に整列するとき,整列が終了するまでに(1)から(3)の一連の手順は,何回実行されるか。ここで,最初はデータの並び全体を整列対象とする。

データの並び:[27,42,33,12]

[手順]

  • (1) 整列対象中の要素の最大の値を選び,最後の要素と入れ替える。
  • (2) 最後の要素を整列対象から外す。
  • (3) 整列対象に要素が1個以上残っていれば,(1)から(3)の一連の手順を実行する。残っていなければ,整列完了なので終了する。

選択肢

  • 2
  • 3
  • 4
  • 5

正解と解き方・学習ポイント(AI解説)

正解:
あなたの回答:未回答

この手順は、整列対象から最大値を選んで末尾に移し、末尾を整列対象から外す操作を繰り返す選択ソートです。手順(3)は「整列対象に要素が1個以上残っていれば」実行するため、整列対象が1個のときも(1)〜(3)を実行します。要素数が4個なので、(1)〜(3)の一連の手順は4回実行されます。

不正解

2回目終了時点では整列対象が2個残っており、手順(3)の条件(1個以上)を満たすため、まだ終了しません。

不正解

3回目終了時点では整列対象が1個残っています。手順(3)は「1個以上」で繰り返すため、もう1回実行が必要です。

正解

4回目で整列対象が0個になり、手順(3)の条件を満たさなくなるため終了します。

不正解

4回目で終了するため、5回目は実行されません。

Point

この問題は、選択ソートの処理内容を手順どおりに追跡し、繰り返し条件(手順(3))を正確に読み取って実行回数を判断する力を問うています。

解くために必要な知識

この問題を解くには、アルゴリズムを手順どおりに追うこと(トレース)と、選択ソートの考え方の理解が必要です。

用語の整理

用語名 意味
昇順 小さい値から大きい値へ並べることです。
整列(ソート) データを規則に従って並べ替えることです。
アルゴリズム 問題を解くための処理手順のことです。
トレース 手順を1回ずつ実行し、途中の状態変化を確認することです。
選択ソート 対象範囲から最大値(または最小値)を選び、端の要素と入れ替えて、対象範囲を狭める方法です。

解くための手順

1. 「整列対象」がどこかを明確にします

  • 最初は全要素が整列対象です。

  • (2)で「最後の要素を整列対象から外す」ので、整列対象は毎回1個ずつ減ります。

2. 1回分の処理でやることを整理します

  • (1)整列対象の最大値を選び、整列対象の最後の要素と入れ替えます。

  • (2)整列対象の最後の要素を外します。

3. 終了条件を正確に読み取ります

  • 手順(3)は「整列対象に要素が1個以上残っていれば」続きます。

  • したがって、整列対象が1個になっても実行され、整列対象が0個になった時点で終了します。

4. 実行回数の数え方

  • 要素数を n とすると、整列対象を1個ずつ外して0個にするため、実行回数は n 回になります。

  • 今回は n = 4 なので 4回です。

問題の解法手順

手順(3)の継続条件が「整列対象に要素が1個以上残っていれば実行」であるため、整列対象が1個になっても、(1)から(3)はもう1回実行されます。

解く手順

1回目(整列対象:4個)

  • 実行前:[27, 42, 33, 12]

  • (1)最大値42を最後の要素12と入れ替えます。

    • [27, 12, 33, 42]
  • (2)最後の42を整列対象から外します(42の位置が確定します)。

  • (3)整列対象は3個なので続けます。

2回目(整列対象:3個)

  • 整列対象:[27, 12, 33](全体表示は[27, 12, 33, 42]

  • (1)最大値33を最後の要素33と入れ替えます(変化なし)。

  • (2)最後の33を整列対象から外します(33の位置が確定します)。

  • (3)整列対象は2個なので続けます。

3回目(整列対象:2個)

  • 整列対象:[27, 12](全体表示は[27, 12, 33, 42]

  • (1)最大値27を最後の要素12と入れ替えます。

    • [12, 27, 33, 42]
  • (2)最後の27を整列対象から外します(27の位置が確定します)。

  • (3)整列対象は1個なので続けます。

4回目(整列対象:1個)

  • 整列対象:[12](全体表示は[12, 27, 33, 42]

  • (1)最大値12を最後の要素12と入れ替えます(変化なし)。

  • (2)最後の12を整列対象から外します。

  • (3)整列対象は0個なので終了します。

以上より、(1)から(3)の一連の手順の実行回数は 4回 です。

選択肢ごとの解説

不正解

2回目終了時点では整列対象が2個残っており、手順(3)の条件(1個以上)を満たすため、まだ終了しません。

不正解

3回目終了時点では整列対象が1個残っています。手順(3)は「1個以上」で繰り返すため、もう1回実行が必要です。

正解

4回目で整列対象が0個になり、手順(3)の条件を満たさなくなるため終了します。

不正解

4回目で終了するため、5回目は実行されません。

まとめ

この手順は、整列対象から最大値を選んで末尾に移し、末尾を整列対象から外す操作を繰り返す選択ソートです。手順(3)は「整列対象に要素が1個以上残っていれば」実行するため、整列対象が1個のときも(1)〜(3)を実行します。要素数が4個なので、(1)〜(3)の一連の手順は4回実行されます。

テクノロジ系 > 基礎理論 > アルゴリズムとプログラミング