令和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回多く実行されると勘違いした場合の誤りです。