単純な線形探索よりも効率の良い線形探索のアルゴリズムを考えます。indexが指すデータの中身が目的の値でないかのチェックの2つをチェックしなければなりませんでした。これから考えるアルゴリズムでは、データに「番兵」と呼ばれる特別な値を設置することによって、比較演算の回数を半減させます。下図は整数のデータが格納された配列から与えられた値を探索している様子を示しています。この例でも、要素数が12個の配列の中から8を探していて、配列の先頭から順番に各要素が8であるかどうかをチェックしています。重要なポイントは、データの末尾に番兵として目的の値である8を追加していることです。番兵を設置することによってデータの中に目的の値が存在することが保障されるので、探索している範囲がデータ数を超えてしまわないかのチェックを行う必要がなくなります。等しい場合)、それは番兵を示すので、データに目的の値が存在しなかったことを示します。番兵を用いた線形探索のプログラムの例を以下に示します。