なんとなくわかる「アルゴリズム」

スポンサーリンク

アルゴリズムとは

アルゴリズム(algorithm)とは、問題を解決するための決められた計算の手順やその計算方法のことを指します。問題に対してアルゴリズムが存在しているときはそのアルゴリズムに従って手順通りに計算を行うことで解を求めることができます。

プログラミングにおいてシステムやアプリケーションを作成するとき、確実な処理を行うのは大前提ですがレスポンスの時間が遅いとユーザに嫌われる傾向があります。そのため、ある問題に対して最短で解を求められるようなアルゴリズムを見つけることがレスポンンスまでの時間短縮のためにとても重要になっています。

例えば、計算のプログラムについて考えると

1日2時間の作業を10日繰り返したら何時間作業しましたか?

という問題があったとき計算方法としては以下の二つのコードで書くことができます。

1,足し算で繰り返す

int workTime = 2;
int days = 10;
int sumWorkTime = 0;
int i;

for(i=0; i<days; i++){
sumWorkTime += workTime;
}

2,掛け算を行う

int workTime = 2;
int days = 10;
int sumWorkTime = 0;

sumWorkTime = workTime * days

上でコーディングする人はいないとは思いますが、二つで比べるとfor文による繰り返しのない下のコードの方が実行速度は速くなります。

このように1つの問題でも様々な計算の手順が存在するため、アルゴリズムを作るときはそのアルゴリズムが一番速く解を導くことが可能なのか、また問題で想定される全てのパターンを網羅できており確実に正しい解を導くことができるのかを検証する必要があります。

最近では

  • Googleの検索順位を決めるアルゴリズム
  • マルウェアを検知するアルゴリズム
  • データ検索のアルゴリズム
  • メモリ管理のアルゴリズム
  • データの暗号化のアルゴリズム

など、自分たちが何気なく使っているものにもアルゴリズムは適応されており、日々改善が行われています。

コメント

タイトルとURLをコピーしました