はじめに
順番に全部探索していくということで、「for文で一発やんけ!w」と思って説明を読んでいきました。すると、番兵法というものを見てよくこんなこと思いつくなぁと思いました。
コード
linear_search.py
def linear_search(A,key):
i = 0
A.append(key)
n = len(A) - 1
while A[i] != key:
i += 1
if i == n:
return "NOT_FOUND"
return i
説明
引数に配列Aと探したい値keyを取ります。見つかれば最初に見つかった配列のインデックス、見つからなければNOT_FOUNDという文字列を返します。keyを配列の末尾に追加(番兵)することによって、whileの終了が保障されているため終了条件がいらなくなっています。(なんかすごい)