初級者向け アルゴリズムを解説
これからアルゴリズムについて解説をしていきますが、こちらの解説はプログラミング初級者(「最近プログラミングを始めました!!」向けになります。また数回のシリーズに分けてプログラミングで使用されるアルゴリズムを解説していきます。なお、次回からRubyのコードが出てきますが、簡単なメソッドを使用してコーディングする予定です。
※このシリーズは「アルゴリズムを、はじめよう(著:伊藤静香)」を参考にしております。
アルゴリズムとは
はじめにアルゴリズムについて、簡単に説明します。
そらく、アルゴリズムと聞くと、プログラミング・難しい..と考える方もいるかと思いますが、アルゴリズムを端的に言えば「手順」です。但し、ただの手順ではなく、「問題や課題を解決するための手順を表現した考え方やアイディア」です。
実は我々の身の回りにも様々なアルゴリズムが使用されています。例えば、「お菓子のレシピ」、これにもアルゴリズムが使用されており、必要な材料とその量、また調理法がレシピに記載されています。そのレシピ通りに作れば誰でもお菓子が作れるようになっているわけです。つまり、レシピは「ある料理を作りたい」という課題を解決するための手順で有り、これこそがアルゴリズムです。
アルゴリズムの基本形
アルゴリズムの手順(構造)には3つの基本形があります。
1. 順次構造
2. 選択構造
3. 反復構造
1. 順次構造
順次構造とは、実行する処理を最初から順番に行っていくことです。
例えば、友達の家に飲み物を買って行くシーンを思い浮かべてみましょう。
「1.自宅を出る」「2.お店に行く」「3.飲み物を買う」「4.お店を出る」「5.友達の家に行く」の順番に物事が進むはずです。この1〜5までの処理を順番に行うことが順次構造となります。
2. 選択構造
選択構造とは、その名の通り、処理を選んで実行する手順です。
例えば、先ほど友達に飲み物を買う際に、その友達が炭酸が好きで、特にコーラが大好きだとしましょう。おそらく、あなたはお店に入って、まずコーラがあれば、コーラを買い、なければ、その他の炭酸飲料を買うと思います。
この、ある条件下で(今であればコーラがあるかないか)、その答えがYESならその条件判断の処理を行い(今であればコーラを買う)、もしその答えがNOであればその他の処理を行う(今であればその他の炭酸飲料を買う)、これが選択構造となります。
3. 反復構造
反復構造とは、同じ処理を繰り返す手順になります。
例えば、先ほど友達に飲み物を買うための予算を500円としてお店に行った際、たまたまそのお店が閉店セールをやっていたことで、予算が300円余ったとしましょう。そこで、あなたは予算がなくなるまで、1つ100円のお菓子を買うことにしました。このときの処理を細かくと次のようになります。
・予算が300円 (お菓子が買える)
・お菓子を1つ買う。(100円支出する)
・予算が200円になる。(まだ買える)
・お菓子を1つ買う。(100円支出する)
・予算が100円になる。(まだ買える)
・お菓子を1つ買う。(100円支出する)
・予算が0円になる。(もう買えない)
・お店を出る。
この、予算を確認して、予算がなくなるまでお菓子を買う(同じ処理を繰り返す)ことが反復構造になります。
次回予告
今回はここで終了です。
次回は本格的にプログラミングで使用される基本的なアルゴリズムについて説明していきたいと思います。