本文へスキップ

FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER

基本情報技術者の問題解説

データ構造及びアルゴリズム 難しい fe_b_v90_alg_trace_113

問題

次のマージ処理を途中まで実行したとき,戻り値はどれか。

整数型の配列: a ← {1, 4, 6, 9}
整数型の配列: b ← {2, 4, 5, 8}
整数型: i ← 1, j ← 1
整数型の配列: out ← {}
while (i ≦ aの要素数 and j ≦ bの要素数 and outの要素数 < 5)
  if (a[i] ≦ b[j])
    append(out, a[i])
    i ← i + 1
  else
    append(out, b[j])
    j ← j + 1
  endif
endwhile
return out[5]
  1. 4
  2. 5
  3. 6
  4. 8
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲

正解と解説

正解:5

正解:5

2つの整列済み配列の先頭候補を比べ,小さい方をoutへ追加する。同値のときは条件がa[i]≦b[j]なので,a側を先に追加する。

追加値ijout
121{1}
222{1,2}
4(a)32{1,2,4}
4(b)33{1,2,4,4}
534{1,2,4,4,5}

out[5]は5。同じ4が2回出る点を落とすと答えがずれる。

選択肢の見分け方:4は同値4の片方だけを見た誤り,6や8は5個目で止めずに先へ進めた誤りである。outの要素数が5になった時点で処理を止める。

この問題について

出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲

公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。

公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。

参考範囲: 2026年度現行科目B・シラバスVer.9.x参考

RELATED

関連問題