概要
- 
基本情報技術者試験の午後の試験でアルゴリズムがあります。過去問を解いても理解ができません…。実際にアルゴリズムをPythonで書いて、理解を深めていきたいと思います。 
- 
前回は配列の最大値のアルゴリズムを書きました。 
- 
今回は線形探索のアルゴリズムから書いてみます。 
線形探索
アルゴリズム
- 配列の要素を先頭から末尾まで順番に取り出して、指定された値と比較する。
コード
# 線形探索で指定された値を見つけるSeqSearch関数
def SeqSearch(A,Length,X):
    Pos = -1
    i = 0
    # 繰り返し処理
    while i < Length and Pos == -1: # 「配列の末尾に達していない」と「見つかっていない」を意味する
        print("Pos=",Pos,"i=",i,"A[i]=",A[i]) # 途中の結果
        # 分岐処理
        if A[i] == X:
            Pos = i
        i += 1
    return Pos
print("実行結果:",SeqSearch([22,55,66,11,44,77,33],7,77))
実行結果
Pos= -1 i= 0 A[i]= 22
Pos= -1 i= 1 A[i]= 55
Pos= -1 i= 2 A[i]= 66
Pos= -1 i= 3 A[i]= 11
Pos= -1 i= 4 A[i]= 44
Pos= -1 i= 5 A[i]= 77
実行結果: 5
まとめ
- 線形探索はちょっと複雑
- 次回は二分探索のアルゴリズムを書こうかな
参考
- こちらの本のCHAPTER3 04線形探索を引用または参考にしました。
 情報処理教科書 基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版