「アルゴリズム」あなたがプログラムを学習中なら、きっとどこかで一度は見たことがある言葉しょう。このアルゴリズムはプログラムを作成するにあたってとても重要なことです。これが実際なんなのか、よくわかりませんよね?そもそもアルゴリズムって何なの?...というところからこの記事ではお伝えしたいと思います。計算方法や処理手順などのことです。アルゴリズムという言葉を使うのは何もコンピューターに限ったことではありません。問題や課題を解くための処理手順としてアルゴリズムという言葉が使われています。算数とか数学とかを勉強したことがある人なら、だれでも一度はやっています。割り切れた時の割る数が最大公約数になります。これもアルゴリズムです。最大公約数を求めるのにいちいち数値を比較してゆくのは手間がかかります。そこでこのような...「効率の良い手順で処理を行う」という手法がアルゴリズムなのです。処理手順を表現するフローチャートとは?プログラムでアルゴリズムを表現するものとして...「フローチャート」...という図があります。フローチャートとは処理手順を表現するための流れ図のことです。押しボタン信号式の交差点を渡るプログラム(?)...のフローチャートを見てみましょう。ちなみに信号が赤の間はスマホを触って信号が青になるのを待ちます。赤信号が3分以上かかる場合は別の交差点を探しに行く処理を入れましょう。フローチャートで表現するとこのようになります。信号待ちループ処理に入ります。信号を見てみて青信号になっていたら交差点を渡って処理が終了。青信号になっていなかったら「スマホを触る」という処理で、別の処理を呼び出します。スマホを触る処理ではスマホで時間つぶしをするという処理が記述されています。処理が終われば待ち時間を確認。3分以上経っていたら別の交差点を探す処理を行って、このプログラムの処理は終了。信号を見る処理を行うという流れです。実はこのなかでも...「3分以上待ったか?」..という判断が非常に重要です。永久に信号が青になるのを待ち続けなければいけません。ループ処理が永久に繰り返されるのです。強制終了させて実行を停止するしか方法がなくなるのです。このような無限ループを避けるため、アルゴリズムでは「停止性」という定義があります。停止性とは...「プログラムは必ず終了しなければならない」...という意味です。終了させる処理を持たせる事が必要なのです。無限ループ(脱出不可能ゲーム状態)が続かない様にしましょう、ということです。効率よく処理できる...つまり高速なプログラムを作れます。処理が遅いと使いにくいと言われるケースも。ならないためにもプログラムの基本であるアルゴリズムのノウハウを必ず押さえておく必要があります。仕様書を見ながらフローチャートが頭に浮かぶそうです。処理効率の良いプログラムを作成できるノウハウを習得しているからだと言えます。今回はアルゴリズムの例としてユークリッド互除法をご紹介しましたが...プログラミングする上で役に立つ定番とも言えるアルゴリズムはたくさんあります。ソートや検索法などがそうですが、それらについてはまた別の機会にご紹介しましょう。松田PSプログラマーを目指すなら基本的なアルゴリズムは習得しておきましょう。基本的なものはほとんどのシステムで使用されます。自分でアルゴリズムを構築するケースも。基本はしっかりと押さえておきましょう。アルゴリズムも勉強し、システムエンジニアになるならこちらのスクールTweetPocketこのページの続きや関連ページは下記から一覧で確認できます。プログラマーカテゴリーに戻るSNSでもご購読できます。【IT研修専門企業のリスキルテクノロジーです。】エンジニアの入り口に立つために役立つようなコンテンツを日々ご提供していきます。講師や代表やスタッフ陣が毎日楽しく書いています。ご質問・ご指摘等はぜひコメントください。*メールアドレス(公開はされません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。講師スキル向上も目指せますIT講師に応募する。