アルゴリズムとは
まず結論
アルゴリズムとは「問題を解くための手順」です。プログラムはアルゴリズムをコンピュータが理解できる形で書いたもの。アルゴリズムは怖くない——料理のレシピと同じです。
アルゴリズムは日常にあふれている
🍳 料理のレシピ
①材料を切る → ②油を熱する → ③炒める → ④味付け → 完成!
手順が決まっている=アルゴリズム
🗺️ カーナビの経路案内
出発地と目的地を入力し、最短経路を計算して案内する。これも立派なアルゴリズム。
🔍 検索エンジン
キーワードを入力すると関連するページを順位付けして表示。複雑なアルゴリズムが動いている。
📱 スマホの顔認証
顔のデータを比較し、一致するか判断する手順。複雑に見えても「手順」には違いない。
フローチャートの読み方
アルゴリズムを図で表したものがフローチャート(流れ図)です。
開始 / 終了
角丸四角(端子)
処理
四角形(矩形)
入出力
平行四辺形
判断
ひし形(条件分岐)
フローチャートの3つの基本構造
① 順次:上から下へ順番に実行
② 分岐(選択):条件によって処理を分ける(ひし形)
③ 反復(繰り返し):条件が満たされる間、同じ処理を繰り返す
この3つを組み合わせればどんな複雑な処理も表現できる!
① 順次:上から下へ順番に実行
② 分岐(選択):条件によって処理を分ける(ひし形)
③ 反復(繰り返し):条件が満たされる間、同じ処理を繰り返す
この3つを組み合わせればどんな複雑な処理も表現できる!
良いアルゴリズムの条件
1
正確性(Correctness)
どんな入力に対しても正しい結果を返す
2
有限性(Finiteness)
必ずいつか終わる(無限ループにならない)
3
効率性(Efficiency)
少ない時間・メモリで処理できる(計算量が小さい)
同じ問題を解くアルゴリズムは複数ある:例えば「1〜100の合計」は①1から順番に足す(100回)vs ②合計 = n×(n+1)/2 の公式(1回)。②の方が圧倒的に効率的。これが計算量(O記法)の考え方。
🎯 試験での出方
- 「アルゴリズムの説明として適切なもの」→ 問題を解くための手順・方法
- フローチャートの各記号の意味(ひし形=判断、角丸=端子 など)
- 「3つの基本制御構造」→ 順次・分岐・反復
- 科目Bでは擬似コードでアルゴリズムが表現され、その実行結果を問う問題が多い
⚠️ よくある間違い
- 「アルゴリズム=プログラムの別名」→ ✗ アルゴリズムは言語に依存しない手順。プログラムは特定言語での実装
- 「フローチャートが書けなくても本番で通用する」→ ✗ トレースするためにフローチャートを頭で追えることが重要
- 「難しそうだから後回し」→ ✗ 科目Bの大半はアルゴリズム。早めに慣れることが合格への近道
✍️ 確認クイズ
Q1. アルゴリズムの説明として最も適切なものはどれか。
✅ 正解は②。アルゴリズムは「問題を解くための手順・方法」。プログラムはアルゴリズムを特定言語で実装したものです。アルゴリズム自体は言語に依存しません。
Q2. フローチャートで「ひし形(◇)」が表すものはどれか。
✅ 正解は③。ひし形は判断(条件分岐)を表します。四角形=処理、角丸四角形=端子(開始/終了)、平行四辺形=入出力です。
Q3. フローチャートの基本制御構造に含まれないものはどれか。
✅ 正解は③。基本制御構造は「順次・分岐・反復」の3つです。並列はフローチャートの基本構造には含まれません。
Q4. 良いアルゴリズムの条件として誤っているものはどれか。
✅ 正解は③。良いアルゴリズムの条件は「正確性・有限性・効率性」です。③の「複雑性」や「できるだけ多くの処理」は逆で、シンプルで少ない計算量であることが望ましい。効率性(少ない時間・メモリで処理)が正しい条件です。
Q5. 1〜100の合計を求める方法として最も効率的なものはどれか。
✅ 正解は②。①はO(n)(n回の加算)、②はO(1)(1回の計算)。100×101÷2=5050と一発で求められます。同じ結果を出すアルゴリズムでも効率が大きく異なります。これが計算量(O記法)を学ぶ動機です。数が100万になると①は100万回、②は1回——差は歴然。
Sponsor Link