【アルゴリズム】アルゴリズムとは?現役情報科学生が丁寧に解説します!

IT系
この記事は約3分で読めます。

こんにちわ!!ぬめです!

 

今回は、プログラミングを行う上で大切になってくる”アルゴリズム”について解説していきます。

具体的なアルゴリズムの解説ではなく、この記事では概念的なアルゴリズムの解説アルゴリズムの具体的な代表例について触れていきたいと思います。

 

対象

この記事の対象者は

プログラミングを習っていて、

基礎的な文法を扱えるレベルの人

を対象にしています。

 

また、フロントエンドエンジニアを目指している人(Webサイト制作)の人は、理解しなくてもいい内容なのでご注意してください!

 

アルゴリズムの解説

アルゴリズムとは?の解説をしていきます。

 

①:プログラムとは違うもの

アルゴリズムとプログラムはよく混同されることが多いですが本質的には違うものです。

 

プログラムとは?

プログラミング言語で書かれた処理の全を指す場合に使われます。

したがって、プログラミング言語で書かれたものであれば、すべてプログラムということができます。

 

例えば、簡単な

「Dogという単語を画面に表示させるもの」

をプログラミング言語で表現した場合は、それはプログラムということができます。

 

究極的に言えば、

「何も実行しない」

ものでも、プログラミング言語で書かれている場合には、プログラムということができます。

 

アルゴリズムは?

アルゴリズムとは、具体的な問題に対しての解法を抽象的に記述したものです。

 

言い換えると、

解法なので、意味のあるものでなければならない

と、いうことができます。

「何かを表示させるだけものは、アルゴリズムとは言えない」

ということを抑えていただければ幸いです。

 

具体的に、皆さんが知っているものを挙げるとすると

  • 筆算(掛け算や割り算)
  • ユークリッドの互除法
  • 素因数分解

が一般的に使われているであろうアルゴリズムですね!!

 

②:ある問題に対してアルゴリズムは複数存在する

簡単なイメージとしては、数学の二次方程式の解き方を思い出してください。

 

式を因数分解して、以下のように答えを導く方法。

解の公式に当てはめて解く方法の二通りの解き方がぞんざいします。

 

アルゴリズムも同様に、ある目的に対して複数のアルゴリズムが存在します

 

代表的なアルゴリズム

探索 = 目的のものを探す

  • 線形探索
  • 二分探索
  • 幅優先探索
  • 深さ優先探索
  • 文字列探索
  • ハッシュ関数を利用した探索

があげられます!

 

一つ一つの解説は今後、活用例代に出くわした時にしていこうかと思います!

 

ソート = 順番を並び替える

  • バブルソート
  • クイックソート
  • マージソート
  • 最小値(最大値)選択法によるソート

があげられます!

 

設計パラダイム

  • 分割統治法
  • 動的計画法
  • 貪欲方
  • 局所探索法

などがあげられます!

 

まとめ

今回は、アルゴリズムの概念的な解説をしました!

 

今回の記事の意図としては、

これから上記のアルゴリズムの解説をした場合に、この記事を入り口にしたいと思い記事にしました!

 

概念的な解説はWikipediaのほうが詳しいので、このブログでは各アルゴリズムの概念的な解説はあえてせず、具体的な例代とともに随時解説を追加していきます!

 

以上!

コメント