アルゴリズムとプログラミング
ITパスポート試験「アルゴリズムとプログラミング」の問題
手続 printArray は,配列 integerArray の要素を並べ替えて出力する。手続 printArray を呼び出したときの出力はどれか。ここで,配列の要素番号は1から始まる。
〔プログラム〕
○printArray()
整数型: n, m
整数型の配列: integerArray ← {2, 4, 1, 3}
for (n を 1 から (integerArray の要素数 − 1) まで 1 ずつ増やす)
for (m を 1 から (integerArray の要素数 − n) まで 1 ずつ増やす)
if (integerArray[m] > integerArray[m + 1])
integerArray[m] と integerArray[m + 1] の値を入れ替える
endif
endfor
endfor
integerArray の全ての要素を先頭から順にコンマ区切りで出力するア1,2,3,4
イ1,3,2,4
ウ3,1,4,2
エ4,3,2,1
正解
ア.1,2,3,4
内側ループが隣接要素を比較して大きい方を後方へバブルさせる昇順バブルソートであり,{2,4,1,3}は{1,2,3,4}に整列される。先頭から出力した「1,2,3,4」が正しく,アである。
?選択肢ごとの解説
ア ○内側ループが隣接要素を比較して大きい方を後方へバブルさせる昇順バブルソートであり,{2,4,1,3}は{1,2,3,4}に整列される。先頭から出力した「1,2,3,4」が正しく,アである。
イ ×1,3,2,4は,2と3の比較・交換を1回省くなどトレースを途中で打ち切った場合に出る誤りで,整列が完了していない。
ウ ×3,1,4,2は,比較の向き(>を<と取り違える)や入れ替え対象を誤った場合の中間状態に近く,昇順整列の結果ではない。
エ ×4,3,2,1は降順に並べた結果で,if条件のinteger Array[m]>integerArray[m+1](昇順用)を逆に解釈した誤りである。
アルゴリズムとプログラミングの他の問題
この問題の「深掘り・誤答の完全解説・試験のコツ・覚え方」はアプリで。
無料ではじめる →ITパスポート試験の全問を、一問ごとにAIの8-ways解説つきで。SRS暗記カード・全真模試・弱点診断まで。まずは無料で。
ukamiru 過去問 · ITパスポート試験 · itpass-r5k-q60
