4個の要素から成るデータの並びを,次の手順を繰り返して昇順に整列するとき,整列が終了するまでに(1)から(3)の一連の手順は,何回実行されるか。
ここで,最初はデータの並び全体を整列対象とする。
データの並び:[27, 42, 33, 12]
〔手順〕
(1) 整列対象中の要素の最大の値を選び,最後の要素と入れ替える。
(2) 最後の要素を整列対象から外す。
(3) 整列対象に要素が1個以上残っていれば,(1)から(3)の一連の手順を実行する。
残っていなければ,整列完了なので終了する。
正答3
解説
正解は3です。
手順は、整列対象の最大値を最後に移し、その要素を対象から外すことを繰り返すものです。
整列対象に要素が1個以上残っている限り、(1)から(3)を繰り返します。
4個の要素なので、1回ごとに対象が1個ずつ減っていきます。
【計算】
1回目は対象[27, 42, 33, 12]の最大42と最後の12を入れ替え、[27, 12, 33, 42]になります。
42を外すと対象は3個残ります。
2回目は対象[27, 12, 33]の最大33がすでに最後なので、そのままです。
33を外すと対象は2個残ります。
3回目は対象[27, 12]の最大27と最後の12を入れ替え、[12, 27]になります。
27を外すと対象は1個残ります。
4回目は対象[12]の最大12が最後の要素なので、そのままです。
12を外すと対象は0個になり、終了します。
一連の手順は4回実行されます。
【選択肢別解説】
1:× 2回では、まだ対象に2個の要素が残っています。
2:× 3回の時点で、対象に要素が1個残っています。
手順(3)では1個以上残っていれば繰り返すので、もう1回実行します。
3:○ 対象が0個になるまでに、一連の手順は4回実行されます。
4:× 4回目で対象が0個になり終了するので、5回目は実行されません。
【ポイント】
この整列方法は選択ソートの考え方です。
「1個以上残っていれば」という終了条件により、最後の1個についても手順が実行される点に注意します。