本文へ移動
✓ 合格ドリル基礎から練習

基本情報技術者 / 条件・事例の練習

基本情報技術者試験基礎・応用

条件を読む・根拠を説明する

境界を探す二分探索

条件を整理し、答えを選んでから解き方を確認しましょう。

A=[2,4,4,7]、添字0〜3。lo←0,hi←4。lo<hiの間m←床((lo+hi)/2)、A[m]<4ならlo←m+1、他はhi←m。終了時loはどれか。

答え・解き方を読む

1

図で見る
候補区間を半分へ絞り続ける
候補区間を半分へ絞り続ける
候補区間を半分へ絞り続ける図を拡大して見る ↗

整列済みという前提で中点と比較し候補を狭めます。境界探索のlo/hiはどちらを含むかを設問のコードで確認します。単に添字から位置を計算する問題では、この図を使いません。

図は問題の関係を整理する模式図です。記号には各問題の数値を当てはめます。寸法・面積・時間の縮尺や、実施工の全条件は表していません。

考える順序

  1. 1初回m=2でA[2]=4なのでhi=2
  2. 2次はm=1でhi=1、次はm=0でlo=1
  3. 3lo=hi=1で最初の4の位置に止まる

選択肢ごとの理由

  • 比較 · 4

    4は配列末尾の次で最初の一致位置ではありません。

  • 正解 · 1

    初回m=2でA[2]=4なのでhi=2。次はm=1でhi=1、次はm=0でlo=1。lo=hi=1で最初の4の位置に止まる。

  • 比較 · 2

    一致した中央で即終了する処理ではありません。

  • 比較 · 3

    7の位置より前に条件を満たす要素があります。

学習アプリで条件・事例を5問 →

学習の参考資料

用語・仕組みを学ぶための参考資料です。設問の条件と、このページの解き方を併せて確認してください。

教材の作成・確認方法

関連する要点をまとめて読む

技術の入口の要点と練習一覧 →