Python での線形探索

Harshit Jindal 2023年1月30日
  1. 線形検索アルゴリズム
  2. 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) です。

著者: Harshit Jindal
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

関連記事 - Python Algorithm