IT基礎・コンピュータの用語一覧へ
このページの目次

線形探索とは?

最終更新:2026/08/18

3秒でわかる

先頭から順に1件ずつ照合して目的の要素を探す方法。並び替えも準備も要らないため、少ない件数や整列できないデータでは今でも最適な選択になります。

もう少し詳しく

どういうものか

線形探索は、データの先頭から末尾に向かって 1 つずつ値を比べ、目的のものが見つかったらそこで止める探索方法です。逐次探索とも呼びます。

最良の場合は 1 回の比較で終わり、最悪の場合は全件を比べます。要素数を n とすると、平均でおよそ n/2 回、最悪で n 回の比較となり、計算量O(n) です。

なぜ必要か

二分探索のほうが速いと知っていても、線形探索が残るのには理由があります。二分探索はデータが整列されていることを前提としますが、整列そのものに O(n log n) かかります。1 回だけ探すなら、並べ替えてから二分探索するより、そのまま線形に探すほうが速く済みます。

さらに、連結リストのように途中へ直接飛べない構造では二分探索が使えません。「値が範囲に入っているか」「条件を満たす最初の要素」といった、大小関係で絞れない条件も線形探索の領分です。

具体例

def linear_search(items, target): for i, value in enumerate(items): if value == target: return i # 見つかった位置 return -1 # 最後まで無かった data = [42, 7, 19, 3, 88] print(linear_search(data, 19)) # 2 print(linear_search(data, 5)) # -1 # 条件で探す場合も線形探索 first_over = next((v for v in data if v > 50), <a href="/glossary/none" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">None</a>) print(first_over) # 88
探索対象 [42, 7, 19, 3, 88] から 19 を探す 42 と比較 -> 違う 7 と比較 -> 違う 19 と比較 -> 一致。位置 2 を返して終了

つまずきやすいところ

  • 見つからなかったときの戻り値を 0 にする — 位置 0 と区別できません。-1None を使います

  • ループの中でリストを変更する — 探索中に要素を削除すると添字がずれ、飛ばされる要素が出ます

  • 常に二分探索が上と思い込む — 数十件程度なら線形探索のほうが速いことは珍しくありません。整列コストと探索回数を合わせて考えます

  • 何度も同じ集合を探す — 同じデータに対して探索を繰り返すなら、集合や辞書に入れて O(1) で引くほうが効きます
  • 似た用語との違い

    手法前提計算量
    線形探索何も要らないO(n)
    二分探索整列済みで添字アクセスできるO(log n)
    ハッシュ探索ハッシュ表を構築済み平均 O(1)


    覚え方

    本棚の端から 1 冊ずつ背表紙を見ていく探し方です。整理されていない棚では、これが一番確実で速い方法になります。

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地線形探索IT基礎

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    このコースが入っている学習分野

    この用語を扱うコース

    コース

    コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

    135レッスン
    コース

    アルゴリズム道場 カメ師範の十の巻

    10レッスン
    コース

    Python入門:基礎文法編

    74レッスン
    コンピュータサイエンスコースの全編を見る