令和7年度 ITパスポート試験 公開問題 問98

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

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

〔手順〕

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

正解: ウ. 4

示された手順に従って、データの並びがどのように変化し、手順が何回実行されるかを順にシミュレーションします。

初期状態の整列対象は [27, 42, 33, 12] (要素数4)です。

1回目の手順の実行

  • (1) 整列対象の最大値 42 を選び、最後の要素 12 と入れ替えます。データの並びは [27, 12, 33, 42] となります。
  • (2) 最後の要素 42 を整列対象から外します。整列対象は [27, 12, 33] (要素数3)となります。
  • (3) 整列対象に要素が1個以上(3個)残っているので、(1)から(3)の一連の手順を再度実行します。

2回目の手順の実行

  • (1) 整列対象の最大値 33 を選び、最後の要素 33 と入れ替えます(同じ位置の入れ替えなので変化なし)。データの並びは [27, 12, 33, 42] となります。
  • (2) 最後の要素 33 を整列対象から外します。整列対象は [27, 12] (要素数2)となります。
  • (3) 整列対象に要素が1個以上(2個)残っているので、再度手順を実行します。

3回目の手順の実行

  • (1) 整列対象の最大値 27 を選び、最後の要素 12 と入れ替えます。データの並びは [12, 27, 33, 42] となります。
  • (2) 最後の要素 27 を整列対象から外します。整列対象は [12] (要素数1)となります。
  • (3) 整列対象に要素が1個以上(1個)残っているので、再度手順を実行します。

4回目の手順の実行

  • (1) 整列対象の最大値 12 を選び、最後の要素 12 と入れ替えます(変化なし)。データの並びは [12, 27, 33, 42] となります。
  • (2) 最後の要素 12 を整列対象から外します。整列対象は空(要素数0)となります。
  • (3) 整列対象に要素が1個以上残っていないため、整列完了となり終了します。

以上より、(1)から(3)の一連の手順は合計 4回 実行されました。したがって正解は「ウ」となります。

各選択肢の解説

  • ア (2) : 実行回数が不足しています。要素が2個減った段階で終了してしまう誤りです。
  • イ (3) : 整列対象の要素が残り1個となった時点ですぐに終了すると勘違いした場合の誤りです。本手順では残り1個のときも手順が実行されます。
  • ウ (4) : 正解です。
  • エ (5) : 実行回数が多すぎます。要素数よりも1回多く実行されると勘違いした場合の誤りです。

Spineチーム