概要
Pythonで線形探索を実装してみました。以下のページを参考にしました。
https://paiza.hatenablog.com/entry/2020/05/01/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A3%E3%81%A6%E3%81%AA%E3%81%AB%EF%BC%9F%E6%8E%A2%E7%B4%A2%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92Python%E3%81%A7%E5%AE%9F#%E7%B7%9A%E5%BD%A2%E6%8E%A2%E7%B4%A2Linear-Search
ソースコード
データが存在しないパターンを作りました。-1が返ってくるのを確認した。
num_list_1は2番目に見つかる。num_list_2は6番目に見つかる。num_list_3は見つからない。
linear_search.py
# coding: UTF-8
# 以下のリストからターゲットとなる値が何番目にあるか探す
num_list_1 = [1,17,4,14,7,5,9,3,5]
num_list_2 = [1,3,9,14,7,12,4,17,5]
num_list_3 = [1,3,9,14,7,12,14,17,5]
target_num = 4
# 線形探索する
def linear_search(list, target):
result = -1
for i in range(len(list)):
print("for文を通った回数:{}".format(i + 1))
# リストの要素とターゲットの値が一致したら
if list[i] == target:
result = i
break
return result
# ターゲットとなる値の位置を出力
print(linear_search(num_list_1,target_num))
print(linear_search(num_list_2,target_num))
print(linear_search(num_list_3,target_num))
実行結果
期待通りの結果が得られた。
$ python linear_search.py
for文を通った回数:1
for文を通った回数:2
for文を通った回数:3
2
for文を通った回数:1
for文を通った回数:2
for文を通った回数:3
for文を通った回数:4
for文を通った回数:5
for文を通った回数:6
for文を通った回数:7
6
for文を通った回数:1
for文を通った回数:2
for文を通った回数:3
for文を通った回数:4
for文を通った回数:5
for文を通った回数:6
for文を通った回数:7
for文を通った回数:8
for文を通った回数:9
-1
何かの役に立てばと。