線形探索(Linear Search)とは?目的の要素を見つけるまでチェックしていく方法!

アルゴリズム
スポンサーリンク

この記事では

  • 線形探索(Linear Search)とは
  • コードで示す具体例
  • コードの解説

を紹介していきます。

探索アルゴリズム全般について知りたい方はこちら
スポンサーリンク

線形探索(Linear Search)とは

  • 説明: 配列やリストの最初から最後まで順番に要素を比較して、目的の要素を見つける方法です。
  • 時間計算量: 最悪の場合 O(n)
  • 使用例: 小規模なデータセットや、データが無作為に並んでいる場合。

現実の例にすると

本棚で特定の本を探す

例えば、あなたが本棚に並んでいる本の中から特定の本を探しているとします。線形探索では、最初の本から順番に1冊ずつ確認していきます。

目的の本を見つけるまで、1冊ずつチェックしていく方法です。

具体例:リストから特定の値を探す

例えば、リスト [4, 2, 7, 1, 9, 3] から値 7 を探す場合を考えます。

コード例(Python)

def linear_search(arr, target):
    for index, value in enumerate(arr):
        if value == target:
            return index
    return -1

# 使用例
arr = [4, 2, 7, 1, 9, 3]
target = 7
result = linear_search(arr, target)

if result != -1:
    print(f"ターゲット {target} はインデックス {result} にあります。")
else:
    print("ターゲットが見つかりませんでした。")

コードの解説

  1. 関数定義:
    def linear_search(arr, target):
    

    linear_search という名前の関数を定義しています。この関数は、リスト arr の中から target を探します。

  2. ループ:
    for index, value in enumerate(arr):
    

    enumerate 関数を使って、リスト arr の各要素とそのインデックスを取得します。

  3. ターゲットの比較:
    if value == target:
        return index
    

    現在の要素 value がターゲット target と一致する場合、そのインデックス index を返します。

  4. ターゲットが見つからない場合:
    return -1
    

    ループが終了してもターゲットが見つからない場合、-1 を返します。

  5. 使用例:
    arr = [4, 2, 7, 1, 9, 3]
    target = 7
    result = linear_search(arr, target)
    

    リスト arr と探したい値 target を定義し、linear_search 関数を呼び出します。

  6. 結果の表示:
    if result != -1:
        print(f"ターゲット {target} はインデックス {result} にあります。")
    else:
        print("ターゲットが見つかりませんでした。")
    

    関数の結果に基づいて、ターゲットが見つかった場合はそのインデックスを表示し、見つからなかった場合はメッセージを表示します。

まとめ

今回のポイントをまとめます。

  • 線形探索(Linear Search)とは、配列やリストの最初から最後まで順番に要素を比較して、目的の要素を見つける方法
スポンサーリンク

コメント

タイトルとURLをコピーしました