資格暗記無料で始める

番兵法とは?

番兵法とは、線形探索で、配列の末尾に探索したい値そのもの(番兵、sentinel)をあらかじめ置いておく工夫。必ずどこかで一致するため、ループ内の「配列の終端を超えたか」の判定が不要になり、比較回数がおよそ半分に減る。見つかった位置が番兵の位置なら「データ中には無い」と判断する。

ばんぺいほう

基本情報技術者試験の頻出用語/テクノロジ系


番兵法の意味

線形探索で、配列の末尾に探索したい値そのもの(番兵、sentinel)をあらかじめ置いておく工夫。必ずどこかで一致するため、ループ内の「配列の終端を超えたか」の判定が不要になり、比較回数がおよそ半分に減る。見つかった位置が番兵の位置なら「データ中には無い」と判断する。

番兵法の具体例

要素数100の配列の101番目に探索値を入れておく。通常なら「i≦100か」と「a[i]=探索値か」の2つを毎回判定するが、番兵があれば後者だけでよい。100件全て走査しても止まらずに番兵で必ず終わる。

番兵法は試験でどう引っ掛けられる?

番兵は処理を高速化するがオーダーは変わらずO(n)のまま。また番兵用に配列を1つ多く確保しておく必要があり、確保を忘れると領域外アクセスになる。二分探索には使えない。

番兵法と関連する用語

最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。