LoginSignup
0
0

More than 1 year has passed since last update.

Pythonで線形探索を実装してみた

Posted at

概要

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

何かの役に立てばと。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0