問題
手続sortは、要素数が2以上の整数型の配列を引数numberArrayで受け取り、その要素を昇順に並べ替えた結果を出力する。手続sortの動作確認のために、処理の途中でjの値とworkArrayの全ての要素を出力する。配列numberArrayを{3,5,1,2,4}とし、手続sortをsort(numberArray)として呼び出したとき、jの値が3と出力された直後のworkArrayの全ての要素の出力はどれか。ここで、配列の要素番号は1から始まる。プログラム概要:numberArrayを複製したworkArrayに対し、j=1から要素数-1まで繰り返し、jから末尾までの要素の中で最小値の要素番号minIndexを求め、workArray[j]とworkArray[minIndex]を交換する選択ソート。
選択肢
- 11,2,3,4,5
- 21,2,3,5,4
- 34,5,3,2,1
- 45,4,3,2,1
正解
2. 1,2,3,5,4
詳しい解説を見る解説を閉じる
解説
選択ソートで{3,5,1,2,4}を処理します。j=1:最小値1をworkArray[1]と交換し{1,5,3,2,4}。j=2:残りの最小値2をworkArray[2]と交換し{1,2,3,5,4}。j=3:残り{3,5,4}の最小値3は既にworkArray[3]にあるのでそのまま、交換後も{1,2,3,5,4}。j=3を出力した直後の状態はイの「1,2,3,5,4」です。(出典: 令和8年度分 ITパスポート試験 問67)
記憶定着問題
全200問を繰り返し学習