アルゴリズムとは(全体像)
アルゴリズムとは、問題を解くための「手順(やり方)」のことだ。「こうやって、こう進めれば、答えにたどり着く」という、決まった進め方のことをいう。
ここで一番のポイント。アルゴリズムは「手順(考え方)そのもの」で、プログラムは「その手順を、コンピュータが分かる言葉で書いたもの(実装)」だ。料理でいえば、レシピ(手順)=アルゴリズム、実際にそのレシピで作ること=プログラム、というイメージ。「アルゴリズム=プログラム」と思い込むと誤りになる。
アルゴリズムは、フローチャート(流れ図)・擬似言語・プログラミング言語などで表せる。
詳しく:プログラムとの違いと「解き方は複数」
ここが心臓部。ポイントを表で押さえよう。
アルゴリズムのポイント
| 項目 | やさしい意味 |
|---|---|
| アルゴリズム | 問題を解く「手順(考え方)」そのもの |
| プログラム | その手順を、コンピュータの言葉で書いたもの(実装) |
| 表し方 | フローチャート・擬似言語・プログラミング言語 |
| 良いアルゴリズム | 正確さ+効率(速さ・少ないメモリ) |
まず、アルゴリズムとプログラムの違い。アルゴリズムは手順(考え方)、プログラムはそれを実際に書いたものだ。
そして、もう1つ大事なこと。同じ問題でも、解き方(アルゴリズム)は1つとは限らない。いくつもの解き方があり、どれだけ速く・少ないメモリで解けるか(効率)で、優劣がつく。「正しい解き方は1つだけ」と思い込むと誤りだ。だから、正確さに加えて、効率のよさも、良いアルゴリズムの大事な条件になる。
わかりやすく言い換えると
身近なたとえで整理しよう。料理で考えるとわかりやすい。
アルゴリズムは、「料理のレシピ(手順)」のイメージ。プログラムは、「そのレシピを、実際にキッチンの道具で作れる形にしたもの(実装)」だ。つまり、考え方と、その実物の違いだ。
「解き方は複数」というのは、同じ料理でも、レシピ(作り方)はいくつもあること。要するに、手順は1つに限らず、早く・むだなく作れるほうがよい。
試験のツボ
🔴 一番出る:アルゴリズムとプログラムの違い
①アルゴリズム=問題を解く手順(考え方)そのもの
②プログラム=その手順をコンピュータの言葉で書いたもの(実装)
🔴 次に出る:解き方は1つとは限らない
①同じ問題でも、解き方(アルゴリズム)は複数ある
②速さやメモリ(効率)で、優劣がつく
🟡 押さえると安定:表し方と評価
①フローチャート・擬似言語などで表せる
②良いアルゴリズム=正確さ+効率のよさ
よくある間違い
①「アルゴリズムとプログラムは、まったく同じものだ」→ ✗ アルゴリズムは手順(考え方)、プログラムはそれを書いたもの(実装)。別もの。
②「ある問題に対して、正しい解き方(アルゴリズム)は1つだけだ」→ ✗ 同じ問題でも、解き方は複数ある。効率(速さ・メモリ)で優劣がつく。
③「アルゴリズムは、効率を考えず、正しく解ければそれでよい」→ ✗ 正確さに加えて、効率のよさも、良いアルゴリズムの大事な条件。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(アルゴリズムの正体)
アルゴリズムに関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
- ある問題を解くための、決まった手順(やり方)のことなのである
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
- 完成したシステムを宣伝して、より多く売るための広告活動である
解答は 2 だぱん。
アルゴリズムは、問題を解くための手順(やり方)なんだぱん。「こう進めれば答えにたどり着く」という決まった進め方だぱん。
選択肢1は給与計算、選択肢3は請求書の事務、選択肢4は広告で、どれも違うぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✓ | 問題を解く手順で正しい |
| 3 | ✗ | 請求書の事務の話 |
| 4 | ✗ | 広告活動ではない |
オリジナル問題2(プログラムとの違い)
アルゴリズムとプログラムの違いに関する次の記述のうち、最も適切なものはどれか。
- アルゴリズムは実際に書いたもの、プログラムは手順そのものである
- アルゴリズムもプログラムも、社員の給与を計算するものである
- アルゴリズムもプログラムも同じで、呼び名が違うだけだとされる
- アルゴリズムは手順そのもの、プログラムはそれを書いたものである
解答は 4 だぱん。
アルゴリズムは手順そのもの、プログラムはそれを書いたもの(実装)なんだぱん。レシピと、実際の調理の関係だぱん。
選択肢1は説明が逆、選択肢2は給与計算、選択肢3は「同じ」が誤りだぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | アルゴリズムとプログラムの説明が逆 |
| 2 | ✗ | 給与計算のものではない |
| 3 | ✗ | 両者には違いがある |
| 4 | ✓ | 手順そのものとその実装で正しい |
オリジナル問題3(解き方は複数)
アルゴリズムの解き方に関する次の記述のうち、最も適切なものはどれか。
- ある問題の解き方(アルゴリズム)は、必ず1つだけだとされている
- 社員の給与を計算する解き方だけが、正しいとされているものだ
- 同じ問題でも解き方は複数あり、効率で優劣がつくものである
- 取引先へ請求書を郵送する解き方だけが、正しいとされている
解答は 3 だぱん。
同じ問題でも、解き方は複数あり、効率(速さ・メモリ)で優劣がつくんだぱん。正しい解き方が1つだけ、とはかぎらないんだぱん。
選択肢1の「必ず1つ」、選択肢2の給与、選択肢4の請求書は、いずれも違うぱん。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 解き方は1つとは限らない |
| 2 | ✗ | 給与計算の解き方ではない |
| 3 | ✓ | 複数あり効率で優劣で正しい |
| 4 | ✗ | 請求書の事務の解き方ではない |
まとめ
押さえどころ
- 🔴 アルゴリズム = 問題を解くための手順(やり方)。
- 🔴 プログラムとの違い = アルゴリズムは手順(考え方)、プログラムはそれを書いたもの(実装)。
- 🟡 解き方は複数 = 同じ問題でも解き方は1つとは限らず、効率(速さ・メモリ)で優劣がつく。
次に学ぶ
- グラフ理論(BFS・DFS・ダイクストラ) ── 探索や最短経路のアルゴリズム。代表的な解き方の例。
- フローチャート ── アルゴリズムを図で表す方法。手順をひと目でつかめる。
執筆: SikakuQuest編集部