線形検索とバイナリ検索は、リスト内の要素を見つけるために使用される一般的なアルゴリズムです。各アルゴリズムの予想される比較数を理解すると、特定の状況に最適な最も効率的な方法を選ぶことができます。この記事は、線形対バイナリ検索方法の予想される比較を比較します。

リニア検索

リニア検索は、ターゲットを見つけたり、最後に到達するまで、リストの各要素を順次チェックします。 予想される比較回数は、ターゲットが現在およびリストのその位置に依存します。

リストに[n]]の要素が含まれている場合、対象は任意の位置に等しくなっている場合、比較の予想される数は次のとおりです。

[ 期待値の比較 = (n + 1) / 2]]

つまり、平均して、検索はリストを通してターゲットの途中を見つけます。

バイナリ検索

バイナリ検索は、検索間隔を半分に繰り返し分割することで、ソートリストで動作します。その効率性は、リストサイズとターゲットの位置によって異なります。

最良の場合、ターゲットは中央にあり、1つの比較だけを必要とする。最悪の場合、それはおよそ[[]]]ログ]2n[]の比較を取る。

ターゲットを想定しても、どのポジションでも同じ可能性が高いと仮定すると、予想される比較件数が大まかです。

修正された比較 ≈ log[2]] n

比較まとめ

  • リニア検索では、(n + 1) / 2.)の比較カウントが予想されます。
  • バイナリ検索では、約ログの比較数が予想されている2n.
  • バイナリ検索は、一般的に、大リストの比較が少ない必要があります。
  • 線形検索は、小リストや未ソートリストに優先する場合があります。