ITパスポート 過去問
令和7年度
問98 (テクノロジ系 問43)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

ITパスポート試験 令和7年度 問98(テクノロジ系 問43) (訂正依頼・報告はこちら)

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

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

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

次の問題へ

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

手順に従ってデータを整理してみましょう。

 

1回目の(1)の結果

[27、12、33、42]

 

1回目の(2)の結果、42が整列対象から外れます。

[27、12、33、42]

 

整列できていないため、手順(1)に戻ります。

 

2回目の(1)の結果、最大値である33は最後にあるため変化はありません。

[27、12、33、42]

 

2回目の(2)の結果、33も整列対象から外れます。

[27、12、3342]

 

整列できていないため、手順(1)に戻ります。

 

3回目の(1)の結果

[12、27、3342]

 

この時点で昇順に整列できたので終了します。

実行した回数は 4 でした。

選択肢1. 2

本選択肢は不正解です。

選択肢2. 3

本選択肢は不正解です。

選択肢3. 4

本選択肢が正解です。

選択肢4. 5

本選択肢は不正解です。

まとめ

本問のように手順に沿って作業をしたり、計算する問題は落ち着いて実際に行えば正解できる問題が多い傾向にあります。

出題されたら一つ一つ処理するようにしましょう。

参考になった数14

02

問題で取り上げられている選択ソートは、順番がバラバラのデータを並べ替えるソーティングアルゴリズムの一種です。

 

選択ソートは効率性よりも安定性を重視していることが特徴です。

 

では、問題で指示されている手順でデータを並べ替えてみましょう。

問題文にある通り、選択ソートは並べ替えのために基準となるデータを1つ決めます。

ここでは「最大値」が基準データとして指定されています。

 

配列内のデータの最大値を確認すると、

 

[27、42、33、12]

 

この中では42が最大ですので、42を配列のデータである12と交換します。

 

1回目の結果:[27、12、33、42]

 

残りのデータ「27、12、33についても同じ要領で交換していくのですが、この理のデータの中での最大値33は既にデータの最後であるため、このままとなります。

 

2回目の結果(変化なし):[27、12、3342]

 

3回目は2712の評価となりますが、これは27の方が大きいので両者を交換します。

 

3回目の結果:[12273342]

 

さて、既に結果としては整列済みになりますが、実際のプログラムだと現段階では「3回目の並べ替え処理が完了した」という状態になります。

 

プログラムが「このデータは整列済みである」と認識できるのは、4回目における並べ替えをするか否かの判断が行われたときです。

 

4回目の評価:[12、27、33、42]

→整列済みなので、ここで初めて「整列対象に要素が〜」について、残っていなければ、整列完了なので終了する。」が実行されます。

 

よって、処理の回数は「4回」です。

まとめ

ソーティングアルゴリズムには、今回出題された選択ソートの他にも、

 

バブルソート・・・隣り合う要素の並べ替えを繰り返す

インサートソート・・・先頭の要素以外の並べ替えを繰り返す

 

などがあります。

参考になった数1

03

手順通りに実行します。

実行前:[27、42、33、12]

1回目手順1[27、42、33、12]→[27、12、33、42]

1回目手順2[27、12、33、(42)] ※対象外を()で囲みます

2回目手順1[27、12、33、(42)]→そのまま

2回目手順2[27、12、(33、42)]

3回目手順1[27、12、(33、42)]→[12、27、(33、42)]

3回目手順2[12、(27、33、42)]

4回目手順1[12、(27、33、42)]→そのまま

4回目手順2[(12、27、33、42)]

 

よって、4回です。

 

 

選択肢1. 2

これは不正解です。

選択肢2. 3

これは不正解です。

選択肢3. 4

これが正解です。

選択肢4. 5

これは不正解です。

参考になった数1