<アルゴリズムの基本⑤> 繰り返し処理(3) 配列データの合計値を求める

アルゴリズム その他

今回は、配列に格納された数値の合計を求めるアルゴリズムについてまとめます。複数の科目のテストの点の合計や、今月の出費の計算など、使う場面は多そうです。

目的

  • 配列データの合計値を求める
  • 条件:合計したい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)

Learn more...

書籍でもう少し詳しく学びたい場合はこちらもどうぞ。筆者もかなり参考にさせてもらっています!

シェアする
ひびきをフォローする
Hbk project

コメント