概要
-
基本情報技術者試験の午後の試験でアルゴリズムがあります。過去問を解いても理解ができません…。実際にアルゴリズムをPythonで書いて、理解を深めていきたいと思います。
-
前回はユークリッドの互除法のアルゴリズムを書きました。
-
今回は配列の最大値のアルゴリズムから書いてみます。
配列の最大値
アルゴリズム
- 配列の先頭の要素を仮の最大値とする。配列の残りの要素と仮の最大値を順番に比較して、より大きい値を見つけたら仮の最大値を更新する。
コード
# 配列の最大値を求めるMax関数
def Max(A,Length):
Ans = A[0]
# 繰り返し処理
i = 1 # ループカウンタの初期値を1にする
while i < Length:
print("Ans=",Ans,"i=",i,"A[i]=",A[i])
# 分岐処理
if A[i] > Ans: # 新たに取り出した要素が仮に最大値より大きければ
Ans = A[i] # 仮の最大値を更新する
i+=1
return Ans
print("実行結果:",Max([12,56,78,34,90],5))
実行結果
Ans= 12 i= 1 A[i]= 56
Ans= 56 i= 2 A[i]= 78
Ans= 78 i= 3 A[i]= 34
Ans= 78 i= 4 A[i]= 90
実行結果: 90
まとめ
- 配列の最大値は意外に難しい
- 次回は線形探索をのアルゴリズムを書こうかな
参考
- こちらの本のCHAPTER3 03配列の最大値を引用または参考にしました。
情報処理教科書 基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版