問題
問98
4個の要素から成るデータの並びを、次の手順を繰り返して昇順に整列するとき、整列が終了するまでに(1)から(3)の一連の手順は、何回実行されるか。ここで、最初はデータの並び全体を整列対象とする。
データの並び:[27, 42, 33, 12]
【手順】
(1) 整列対象中の要素の最大の値を選び、最後の要素と入れ替える。
(2) 最後の要素を整列対象から外す。
(3) 整列対象に要素が1個以上残っていれば、(1)から(3)の一連の手順を実行する。残っていなければ、整列完了なので終了する。
- 2
- 3
- 4
- 5
[出典:ITパスポート試験 令和7年度 問98]
スポンサーリンク
正解
正解は「ウ」です。
解説
この問題は選択ソート(Selection Sort)の手法に似た整列アルゴリズムを理解しているかを問うものです。手順としては、整列対象の中から最大値を選び、それを最後の要素と交換し、その要素を整列済みとして対象外にしていく、という操作を繰り返します。
- 初期状態:[27, 42, 33, 12]
- 1回目:最大値42と12を交換 → [27, 12, 33, 42](42は確定)
- 2回目:最大値33と33を交換(位置そのまま)→ [27, 12, 33, 42](33確定)
- 3回目:最大値27と12を交換 → [12, 27, 33, 42](27確定)
- 4回目:残り1要素(12)は確定
このように、整列が完了するまでに(1)~(3)の手順は4回実行されます。したがって正解は「ウ(4)」です。
ア(2):
たった2回ではすべての要素が並び替わることはできません。
イ(3):
3回では最大3要素しか整列できず、4個の要素には不十分です。
エ(5):
5回実行する必要はなく、4回で全体が整列済みとなります。
難易度
本問は整列アルゴリズムの手順を一つ一つ追う必要があるため、プログラミングやソート手法に不慣れな初学者にとってはやや難しいと感じられるかもしれません。ただし、選択ソートの基本が理解できていれば、丁寧に追うことで正解にたどり着けるレベルの問題です。
スポンサーリンク
用語補足
選択ソート:
整列対象の中から最大(または最小)値を1つ選び、決まった位置に置いていく手法。ステップを繰り返すことでデータを整列します。
整列(ソート):
データをある基準(例えば昇順・降順)に並べ替える処理。アルゴリズムの基本操作の一つで、データ検索や処理の効率化にもつながります。
対策
整列アルゴリズム(特に選択ソート、バブルソート、挿入ソート)の手順を図解で理解しておくことが効果的です。実際に手を動かして1ステップずつ追ってみることで、ソートの流れを自然に身につけられます。