アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20220612 実施分 問9
配列A[i](i=1,2,…,n)を,次のアルゴリズムによって整列する。行2〜3の処理が初めて終了したとき,必ず実現されている配列の状態はどれか。
〔アルゴリズム〕
行番号
1 iを1からn-1まで1ずつ増やしながら行2〜3を繰り返す
2 jをnからi+1まで1ずつ減らしながら行3を繰り返す
3 もしA[j]<A[j-1]ならば,A[j]とA[j-1]を交換する
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20220612 実施分 問9(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:ア
覚える知識
バブルソートの1パス後の状態
バブルソートは隣接要素を比較・交換し、1パスごとに最小(または最大)値を端へ確定させる整列法である。
この問題で必要なこと
後ろから隣接要素を比較交換していくと、最初の外側ループ終了時にA[1]に最小値が来る。
ひっかけ
走査方向を取り違え、最大値がA[n]に来ると誤解させる。
この知識の出題:本試験系 0 回・免除試験 3 回(公開問題での観測値)