【アルゴリズムの勉強】Pythonで線形探索を書いてみた
学習エントリ。
Pythonで線形探索を実装する。
線形探索ってなんぞ
線形探索(せんけいたんさく、英: linear search, sequential search)は、検索のアルゴリズムの一つ。 リストや配列に入ったデータに対する検索を行うにあたって、 先頭から順に比較を行い、それが見つかれば終了する。
{\displaystyle n} n個のデータから {\displaystyle m} m個のデータを検索する場合、 時間計算量は {\displaystyle O(nm)} O(nm)、空間計算量は {\displaystyle O(1)} O(1)必要となる。
# coding: utf-8 example_list = [5,2,10,1,18,3,7,4] target = 18 def linear_search(list,taget): result = 0 index = 0 for x in xrange(0,len(list)): if list[x] == target: result = 1 index = x break if result == 1: return str(target) + "はリストの" + str(index) + "番目にあったよ" else: return str(target) + "はリストには無かったよ" print(linear_search(example_list,target)) ##18はリストの4番目にあったよ
楽に書けた
targetが複数あった場合の処理は別途必要