まず結論

アルゴリズムとは「問題を解くための手順」です。プログラムはアルゴリズムをコンピュータが理解できる形で書いたもの。アルゴリズムは怖くない——料理のレシピと同じです。

アルゴリズムは日常にあふれている

🍳 料理のレシピ

①材料を切る → ②油を熱する → ③炒める → ④味付け → 完成!
手順が決まっている=アルゴリズム

🗺️ カーナビの経路案内

出発地と目的地を入力し、最短経路を計算して案内する。これも立派なアルゴリズム。

🔍 検索エンジン

キーワードを入力すると関連するページを順位付けして表示。複雑なアルゴリズムが動いている。

📱 スマホの顔認証

顔のデータを比較し、一致するか判断する手順。複雑に見えても「手順」には違いない。

フローチャートの読み方

アルゴリズムを図で表したものがフローチャート(流れ図)です。

開始 / 終了
角丸四角(端子)
処理
四角形(矩形)
入出力
平行四辺形
判断
ひし形(条件分岐)
フローチャートの3つの基本構造
順次:上から下へ順番に実行
分岐(選択):条件によって処理を分ける(ひし形)
反復(繰り返し):条件が満たされる間、同じ処理を繰り返す
この3つを組み合わせればどんな複雑な処理も表現できる!

良いアルゴリズムの条件

1
正確性(Correctness)
どんな入力に対しても正しい結果を返す
2
有限性(Finiteness)
必ずいつか終わる(無限ループにならない)
3
効率性(Efficiency)
少ない時間・メモリで処理できる(計算量が小さい)
同じ問題を解くアルゴリズムは複数ある:例えば「1〜100の合計」は①1から順番に足す(100回)vs ②合計 = n×(n+1)/2 の公式(1回)。②の方が圧倒的に効率的。これが計算量(O記法)の考え方。

🎯 試験での出方

⚠️ よくある間違い

✍️ 確認クイズ

Q1. アルゴリズムの説明として最も適切なものはどれか。
✅ 正解は②。アルゴリズムは「問題を解くための手順・方法」。プログラムはアルゴリズムを特定言語で実装したものです。アルゴリズム自体は言語に依存しません。
Q2. フローチャートで「ひし形(◇)」が表すものはどれか。
✅ 正解は③。ひし形は判断(条件分岐)を表します。四角形=処理、角丸四角形=端子(開始/終了)、平行四辺形=入出力です。
Q3. フローチャートの基本制御構造に含まれないものはどれか。
✅ 正解は③。基本制御構造は「順次・分岐・反復」の3つです。並列はフローチャートの基本構造には含まれません。
Q4. 良いアルゴリズムの条件として誤っているものはどれか。
✅ 正解は③。良いアルゴリズムの条件は「正確性・有限性・効率性」です。③の「複雑性」や「できるだけ多くの処理」は逆で、シンプルで少ない計算量であることが望ましい。効率性(少ない時間・メモリで処理)が正しい条件です。
Q5. 1〜100の合計を求める方法として最も効率的なものはどれか。
✅ 正解は②。①はO(n)(n回の加算)、②はO(1)(1回の計算)。100×101÷2=5050と一発で求められます。同じ結果を出すアルゴリズムでも効率が大きく異なります。これが計算量(O記法)を学ぶ動機です。数が100万になると①は100万回、②は1回——差は歴然。

Sponsor Link