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

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

問題

次の二分探索プログラムの空欄[ ]に入る式はどれか。arr(ソート済み)からtargetを探す。 ○ 整数型: binarySearch(整数型の配列: arr, 整数型: target) 整数型: low ← 0 整数型: high ← arr の要素数 − 1 while (low ≦ high) 整数型: mid ← [ ] if (arr[mid] = target) return mid elseif (arr[mid] < target) low ← mid + 1 else high ← mid − 1 endif endwhile return -1

選択肢

  1. 1ア low + high
  2. 2イ (low + high) / 2
  3. 3ウ low * high
  4. 4エ high − low

正解

2. イ (low + high) / 2

詳しい解説を見る

解説

正解はイ。二分探索は、ソート済み配列の探索範囲の中央の値と目的の値を比較し、範囲を半分に絞り込む操作を繰り返すアルゴリズムである。中央の添字はmid=(low+high)/2(整数除算)で求める。例えばlow=0、high=9ならmid=(0+9)/2=4となり、arr[4]とtargetの大小関係に応じてlow=mid+1またはhigh=mid−1で探索範囲を半分にしていく。アのlow+highは中央ではなく範囲を超えた位置を指し得る(low=0、high=9なら9で末尾になる等)。ウのlow*highやエのhigh−lowは中央の位置を表す式ではないため誤りである。二分探索は1回の比較で範囲が半分になるため計算量はO(log n)であり、線形探索のO(n)との対比、および「ソート済みであることが前提」という適用条件が頻出ポイントである。

一問一答

科目A 180問+科目B 60問

Bの関連問題

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

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