未来電子テクノロジーでインターンをしているtsuyoshi0514です。
##アルゴリズムとは
アルゴリズムとはいわゆるレシピのようなものです。
そして、その材料としてデータが存在しています。
料理と同じように作りたいものがあった時に、作る手順がわからないと作ることができませんよね?
これと同じで、プログラムを作る際にもアルゴリズムという手順が必要になります。
これを一から考えるというのはとても難しいことです。
しかし、現在ではプログラミングの歴史の中で蓄積された知識が豊富にあるので、それを利用していくという形をとります。
##フローチャート
フローチャートはアルゴリズムを図にしたものです。
これを記述することで、処理の流れを理解することができます。
フローチャートはプログラムを記述する上で役に立ちます。
##アルゴリズムの三大処理
- 順次処理:
処理を記述した順番に記述する。 - 分岐処理:
条件により処理の流れを変える。 - 繰り返し処理:
条件が成立する間繰り返す。
上記の三つの処理のことをアルゴリズムの三大処理といいます。
そして、この3つの処理を利用してプログラミングを行うことを構造化プログラミングといいます
##アルゴリズムの性質
###正当性
アルゴリズムの二つの性質の一つが正当性です。
アルゴリズムは与えられた課題に対して正しい結果を出さなければいけません。
このことをアルゴリズム正当性といいます。
そしてこの正当性は「指定された条件を満たす入力値が与えられたとき、必ず正しく動作する(正しい出力結果を得る)」を保証することで示されます。
###停止性
アルゴリズムの二つ目の性質が停止性です。
アルゴリズムは最終的には必ず停止しなければならず、停止しなければ処理が永遠と繰り返される、無限ループという状態に陥ります。アルゴリズムの停止性とは、「いかなる条件の入力値が与えられても、有限時間内に必ず正しく停止すること」を保証することで示されます。
##まとめ
表面的な内容だとこういったことがアルゴリズムの要素として挙げることができます。
アルゴリズムをしっかり理解するためには何年も勉強しなければいけないといわれています。
しかし、アルゴリズムはプログラミングを勉強していくうえで非常に重要なものなので、これからもしっかり勉強していきます。
参考文献:一週間で身につくアルゴリズム