4個の要素から成るデータの並びを、次の手順を繰り返して昇順に整列するとき、整列が終了するまでに(1)から (3)の一連の手順は、何回実行されるか。ここで、最初はデータの並び全体を整列対象とする。
データの並び: [27, 42,33, 12]
[手順]
(1) 整列対象中の要素の最大の値を選び、最後の要素と入れ替える。
(2) 最後の要素を整列対象から外す。
(3) 整列対象に要素が1個以上残っていれば、(1)から (3)の一連の手順を実行する。 残っていなければ、整列完了なので終了する。
- ア. 2
- イ. 3
- ウ. 4
- エ. 5
【答え】ウ
【解説】
この問題は、選択ソート型の整列手法に基づいています。
1回目の実行
(1) [27, 42, 33, 12] ← 最大は42、最後の12と交換
(2) [27, 12, 33, 42] ← 最後の要素「42」を整列対象から外す
(3) [27, 12, 33, 42] ← 整列対象の要素は3個なので(1)に戻る
2回目の実行
(1) [27, 12, 33, 42] ← 最大は33、最後の33と交換(変化なし)
(2) [27, 12, 33, 42] ← 最後の要素「33」を整列対象から外す
(3) [27, 12, 33, 42] ← 整列対象の要素は2個なので(1)に戻る
3回目の実行
(1) [27, 12, 33, 42] ← 最大は27、最後の12と交換
(2) [12, 27, 33, 42] ← 最後の要素「27」を整列対象から外す
(3) [12, 27, 33, 42] ← 整列対象の要素は1個なので(1)に戻る
4回目の実行
(1) [12, 27, 33, 42] ← 最大は12、最後の12と交換(変化なし)
(2) [12, 27, 33, 42] ← 最後の要素「12」を整列対象から外す
(3) [12, 27, 33, 42] ← 整列対象の要素は0個なので終了
→整列が終了するまでに(1)から(3)の一連の手順は、4回実行される。
以上より、正解はウ.となります。

※本問は自分で考えて解く応用的な問題なので、用語の丸暗記のみでは対応できません。