アルゴリズム

アルゴリズムとフローチャートを理解しよう!

2022年5月11日

アルゴリズム。ITを学ぶ上で、欠かせない言葉ですね。

プログラムを作成したり、問題を解決したりする際にアルゴリズムを使いますが、基本を理解しておくことは非常に重要です。

今回はそんなアルゴリズムの目的や記述方法のフローチャート、トレースに関して解説します。

 

アルゴリズムとは?

アルゴリズムとは、「問題を解決する方法や手順を、単純な計算や操作などの組み合わせをして定義したもの」です。

これは、数学の解き方や計算手順、プログラム作成などを行う上での基礎となります。

プログラム作成時に処理の手順(アルゴリズム)をうまく工夫することで、無駄がなく、処理時間の短い、効率的なプログラムを作成することができます。

アルゴリズムの目的問題を解決すること

アルゴリズムは簡単な処理から複雑な処理まで、実に様々な用途があります。以下に例を挙げておきます。

アルゴリズムの例

  • 数値の並び替え
  • データの中から必要なものを探し出す
  • ビッグデータの分析
  • 画像認識
  • AIや機械学習
  • データの暗号化

因みに語源は9世紀前半に現在のイラクのバグダードで活躍した数学者、アル・フワーリズミー、正しくはアブー=アブドゥッラー・ムハンマド・イブン=ムーサー・アル=フワーリズミー(メッチャ長い...)の名前から来ているそうです。(Wikipedia参考

流れ図(フローチャート)の使い方

続いて、アルゴリズムの表現手段である流れ図に関してです。

流れ図という言葉より、フローチャートの方が馴染みがあるかもしれませんね。

アルゴリズムで重要なことは処理手順の順番です。アルゴリズムは頭の中だけで整理は複雑になればなるほど難しくなってくるので、フローチャートを作成して、処理手順を一つずつ、上から下に流れる感じで表現していきます。

フローチャートは以下にあるように「処理記号」や「判断記号」と呼ばれる、いくつかの記号を使って表現します。

フローチャートの記号と役割

流れ図(フローチャート)の処理パータン

流れ図(フローチャート)で使う処理の流れには、「順次・選択・繰返し(ループ)」という基本3構造を用いて、プログラムの骨組みを記述します。

この基本3構造は有名な計算機科学者であるエドガー・ダイクストラさんが提言したので、ダイクストラの基本3構造とも呼ばれています。

それぞれの構造のイメージは以下のようになります。

流れ図の基本3構造

プログラムにおいて「選択」は「if」、繰返しは「while や for」として使われますね。

トレースとは?

流れ図(フローチャート)において、アルゴリズムが正しく書かれているかをチェックするためには、変数の値が処理の過程でどのように変化をしていくか確認します。

この変数の値の変化を追ってチェックしていくことをトレースと呼びます。

具体的には流れ図の経路を追いながら、変数の値を確認していくことで、処理の過程を確認していきます。

トレーズのイメージ

まとめ

今回はアルゴリズムに関して、目的やフローチャート、トレースを解説してきました。

アルゴリズムのまとめ

  • アルゴリズムの目的問題を解決すること
  • 流れ図(フローチャート)を使って処理を表現する
  • トレースでアルゴリズムの正しさをチェックする
  • 一つの解決に対して、アルゴリズムは複数あるが、性能や効率さに違いがある

アルゴリズムは実に様々な場面で使われますね。

そして、とても奥が深い分野で、プログラムにおいては、アルゴリズムを理解することで、より効率的なプログラムを作成することができるようになります。

具体的には探索アルゴリズム、整列アルゴリズムなどがありますが、なかなか難しいですね(汗)

先ずはアルゴリズムの概念を抑えることが重要ですね。

アルゴリズムの計算量を表すための「オーダー記法」に関して、以下の記事で解説してますので、併せて読んでみてください。

以上です!

-アルゴリズム