基本情報トップに戻る
B難易度: 2026年度

基本情報技術者 予想問題B 第72問

問題

次の擬似言語プログラムは配列dataをバブルソートで昇順整列する。外側ループが1回終わった時点(i=1完了時)の配列状態はどれか。 整数型の配列: data ← {5, 2, 8, 1, 9} 整数型: i ← 1 while (i ≦ 4) 整数型: j ← 1 while (j ≦ 5 - i) if (data[j] > data[j + 1]) 整数型: t ← data[j] data[j] ← data[j + 1] data[j + 1] ← t endif j ← j + 1 endwhile i ← i + 1 endwhile

選択肢

  1. 1ア {2, 5, 1, 8, 9}
  2. 2イ {2, 5, 8, 1, 9}
  3. 3ウ {1, 2, 5, 8, 9}
  4. 4エ {5, 2, 8, 1, 9}

正解

1. ア {2, 5, 1, 8, 9}

詳しい解説を見る

解説

外側ループ1回目(i=1)では、内側ループがj=1から4まで動き、隣接要素を比較・交換する。初期状態{5,2,8,1,9}からトレースすると、j=1: 5>2で交換して{2,5,8,1,9}、j=2: 5≦8で交換なし、j=3: 8>1で交換して{2,5,1,8,9}、j=4: 8≦9で交換なし。よって1回目終了時は{2,5,1,8,9}でアが正解である。バブルソートは1パスごとに未確定部分の最大値が右端に沈む性質があり、ここでは最大値9が末尾に確定している。イの{2,5,8,1,9}はj=3の交換を見落とした値、ウの{1,2,5,8,9}は全ループ終了後の完全に整列した状態、エは初期状態のままである。「指定された時点」の配列状態を問う出題では、どこまで処理が進んだかを慎重に区切ってトレースすることが重要である。

一問一答

科目A 180問+科目B 60問

Bの関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。