今回は、配列に格納された数値の合計を求めるアルゴリズムについてまとめます。複数の科目のテストの点の合計や、今月の出費の計算など、使う場面は多そうです。
目的
- 配列データの合計値を求める
- 条件:合計したいN個の数値が以下のように配列DATAに格納されており、データ数は既知
DATA[0] = a0, DATA[1] = a1, ….. , DATA[N-1] = a(N-1)
擬似コード例
今回のアルゴリズムを擬似コードで表しました。合計値を表す変数sumを準備し、これに各要素を加算する処理をN回繰り返します。
Procedure SUM2(DATA, N)
sum ← 0
idx ← 0
while idx < N do
sum ← sum + DATA[idx]
idx ← idx +1
end-whild
return sum
Pythonコード例
Pythonコード例を以下に示します。
>>> def sum_array(DATA, N):
... sum_ = 0
... for idx in range(N):
... sum_ += DATA[idx]
... return sum_
出力結果
>>> data = [1, 2, 3, 4, 5]
>>> sum_array(data, 5)
15
処理速度の検証
単純にN回の繰り返し処理のアルゴリズムなので、たかだかnのオーダーとなり、データ量に比例します。実験結果を以下に記載します。前回同様、横軸:データ数、縦軸:処理時間としてそれぞれ基底10の対数値としています。(コード例はこちら)
まとめ
今回は、あらかじめ計算が必要なデータ数が分かっていることを前提として、それらの合計値を求めるアルゴリズムについて検討しました。次回は計算が必要なデータ数がわからない場合についてまとめる予定です。
(参考文献:杉浦賢、図解でかんたんアルゴリズム 情報処理のかなめとなる考え方が手に取るようにわかる、Softbank Creative)
コメント