HOWTO · Python

Python での線形探索

このチュートリアルでは、Python で実装された線形探索アルゴリズムを紹介します。

このページの内容
注意
線形検索について詳しく理解したい場合は、線形検索アルゴリズムの記事を参照してください。

線形検索アルゴリズム

ここでは、n 個の要素を含むソートされていない配列 A[] があると仮定して、要素 X を見つけたいとします。

  • 左端の要素から始まる配列内のすべての要素を for ループを使って辿り、以下のようにする。
    • A[i] の値が X と一致したら、インデックス i を返します。(X にマッチする要素が複数存在する場合は、インデックス i を返す代わりに、すべてのインデックスを表示するか、すべてのインデックスを配列に格納してその配列を返します)。
    • そうでなければ、次の要素に移動します。
    • 配列の最後の要素にある場合は、for ループを終了します。
  • 一致する要素がなければ -1 を返す。

Python で線形検索の実装

def linearsearch(arr, n, x):

    for i in range(0, n):
        if arr[i] == x:
            return i
    return -1


arr = [1, 2, 3, 4, 5]
x = 1
n = len(arr)
position = linearsearch(arr, n, x)
if position == -1:
    print("Element not found !!!")
else:
    print("Element is present at index", position)

出力:

Element is found at index: 1

上記のアルゴリズムの時間的複雑さは O(n) です。