5歳でもわかる!
アルゴリズムの絵本
アルゴリズムとは、ゴールにたどり着くための「手順」のこと。
レシピも、カーナビも、SNSも、じつはぜんぶこの「手順」で動いているんだよ。
この絵本を読み終えるころには、「アルゴリズム」がこわい言葉じゃなくなっているはず。
むかしむかし……ではなく、今の私たちの世界。
コンピューターの中には、たくさんの「手順書」があります。
その手順書の名前が、 「アルゴリズム」です。
「どうすれば答えにたどり着けるか」を決めた、 わかりやすい手順のことだよ。
アルゴリズム = 問題を解決するための「手順」
たとえば、おいしいカレーを作りたいとします。
「カレーを作って!」だけでは、ちょっと困りますよね。
そこで、こんなふうに書きます。
たとえば、 「たまねぎをきつね色になるまで5分炒める」 と決めておけば、誰が作っても似たカレーになります。
これがアルゴリズムの大事なところです。
「適当に炒める」ではなく、
「中火で5分炒める」のように、
手順をできるだけ明確にします。
今度は車に乗って、お出かけしてみましょう。
カーナビは、
- 今いる場所
- 目的地
- 道路
- 渋滞
- 距離
- 時間
などを考えて、 「この道を通ると早そう!」 と計算します。
これも、立派なアルゴリズムです。
決められた方法で「おすすめの道」を探しているんだね!
音楽の楽譜
「この音を、この長さで、この順番に弾いてね」 と教えてくれます。
→ 手順が決まっています。
家電の説明書
「電源を入れる」
↓
「ボタンを押す」
↓
「設定する」
→ これも手順です。
つまり、アルゴリズムは「プログラマーだけの言葉」ではありません。
私たちは普段から、たくさんのアルゴリズムを使って生活しています。
ここで、プログラマーの世界に入ってみましょう。
アルゴリズムは「手順」そのものです。
でも、コンピューターは人間のように 「だいたいこんな感じ」で理解してくれません。
そこで、その手順を JavaやPythonなどのプログラミング言語 に翻訳します。
アルゴリズム
「どういう順番で問題を解くか」
= 手順そのもの
プログラム
その手順をJavaやPythonなどで書いたもの。
= 手順をコンピューターに伝える文章
アルゴリズムは「料理のレシピ」。
プログラムは「そのレシピを英語や日本語ではなく、コンピューターが読める言葉で書いたもの」です。
プログラミングのアルゴリズムには、 とても大切な3つの考え方があります。
① 順次
上から順番にやる。
例:
手を洗う
↓
ごはんを食べる
↓
歯をみがく
② 分岐
条件によって道を変える。
例:
雨が降っている?
↓
YES → 傘を持つ
NO → そのまま行く
③ 反復
同じことを何回も繰り返す。
例:
「靴下を1枚ずつたたむ」
↓
まだ靴下がある?
↓ YES
またたたむ!
この3つを組み合わせることで、たくさんの複雑な処理を作ることができます。
「SNSのアルゴリズムが変わった」 というニュースを見たことはありませんか?
ここでいうアルゴリズムは、 「どの投稿を、どの順番で見せるかを決める仕組み」 のことです。
たとえば、あなたが猫の動画をたくさん見ているとします。
SNSは、
- 猫の動画を見た
- 猫の投稿に「いいね」をした
- 猫の投稿を保存した
- 長い時間、猫の動画を見た
という情報などを参考にして、 「この人は猫が好きなのかな?」 と考えます。
猫に関係する投稿を多く表示します。
人によって表示される投稿が違うのは、
アルゴリズムが「この人は何が好きかな?」と考えているからなんだね。
ここで、ちょっと不思議なことが起こります。
SNSがあなたの好きなものばかり見せてくれると、 とても便利です。
でも、知らないものを見る機会が少なくなります。
自分の好みに合う情報に囲まれて、 外側の情報が見えにくくなる現象を 「フィルターバブル」 と呼びます。
アルゴリズムは便利な道具ですが、 「自分が見ている情報だけが世界の全部」とは限りません。
たくさんのおもちゃが箱の中に入っています。
「赤い車を探して!」と言われたら、どうしますか?
端から順番に探す方法があります。
これが 線形探索 です。
端から1個ずつ調べていきます。
とても簡単ですが、100万個のデータがあったら大変です。
では、数字が 1、2、3、4、5、6、7、8、9 と順番に並んでいたとします。
「8を探して!」と言われました。
1から全部見る必要はありません。
これが 二分探索 です。
「真ん中を見る → いらない半分を捨てる」 を繰り返します。
探すデータがたくさんあるほど、 「最初から全部見る」のと 「半分ずつ絞り込む」の差が大きくなります。
今度は、
5 → 2 → 8 → 1 → 4
とバラバラになった数字を、
1 → 2 → 4 → 5 → 8
のように並べ替えてみましょう。
これをするアルゴリズムを 「整列アルゴリズム」 といいます。
挿入ソート
トランプを並べるように、 1枚ずつ正しい場所へ入れていくイメージ。
小さなデータでは分かりやすい方法です。
クイックソート
基準になる数字を決めて、 「小さいグループ」と「大きいグループ」に分けながら整理します。
大量のデータでも高速に処理できます。
アルゴリズムを学ぶと、 「コードが書けるようになる」だけではありません。
一番大きいのは、 問題を小さく分けて考えられるようになること です。
たとえば仕事で、 「この作業、なんだか時間がかかるな」 と思ったとします。
アルゴリズム的に考えると、
というように、問題を整理できるようになります。
2026年現在、AIに 「このコードを作って」 とお願いすることが当たり前になってきました。
とても便利です。
でも、AIが作ったコードが 本当に正しいのか? を判断する必要があります。
AIがコードを書く時代になっても、 「そのコードが何をしているのか」を理解する力は重要です。
アルゴリズムを知っていれば、 AIが提案した方法について、 「もっと速い方法はないかな?」 「この処理、本当に必要かな?」 と考えられます。
半日がかりでバグを探すことも普通にありました。
2026年の今はAIに手伝ってもらうことで、その時間が半分以下になることもあります。
だからこそ、「どういう手順で動いているのか」を自分でも分かっておくことが大事なんだと感じています。
アルゴリズムを考えるときには、 こんな3つの考え方が役立ちます。
① 一般化
いろいろな問題を見て、 「これ、前にも似た問題があったぞ」 と共通点を見つける。
② 抽象化
細かいことをいったん忘れて、 「本当に大切なのは何?」 と考える。
③ 組み合わせ
知っている方法を組み合わせて、 新しい解決方法を作る。
「この問題、前に解いた問題と似ている!」
↓
「じゃあ、前の方法を使えないかな?」
↓
「ここだけ少し変えれば使えそう!」
これもアルゴリズム的な考え方です。
本を読んでいるだけではピンとこなかったのに、
実際に簡単なアプリでクラスを設計してみたら、
急に「あ、こういうことか」とつながった瞬間がありました。
アルゴリズムも同じで、頭の中だけで理解しようとせず、
手を動かしてみるのが近道なのかもしれません。
私自身、SES時代に先輩から
と言われて、 「アルゴリズムって何だ……?」 と言葉に詰まった経験があります。
新人のころは、 「コードを書けばいいんでしょ?」 と思ってしまいがちです。
でも、経験を積むと、 コードを書く前に 「どういう手順で問題を解くか」 を考えることが重要だと分かってきます。
資格の勉強をしていたときも、同じことを感じました。
Java Silverの勉強を始めたころ、私は参考書をひたすら読み込んでいました。
でも、それだけではなかなか身につかず、 結局は問題集を繰り返し解くようになってから、 やっと理解が深まったのです。
これは、料理をするときに いきなり包丁を持つのではなく、 「何を作るのか」「何が必要なのか」 を先に考えるのと同じです。
これがアルゴリズムを理解する大きなポイントです。
おしまい。アルゴリズムの正体がわかったかな?
アルゴリズムは、怖い言葉ではありません。
いちばん簡単に言えば、
「ゴールまで行くための手順」
です。
今日覚えておきたいアルゴリズムのポイント
- アルゴリズム=問題を解決するための手順
- プログラム=その手順をJavaやPythonなどで書いたもの
- 順次=順番に処理する
- 分岐=条件によって道を変える
- 反復=同じことを繰り返す
- 探索=欲しいデータを探す
- 整列=データを順番に並べる
- SNSのアルゴリズム=表示する投稿や順番などを決める仕組み
そして、アルゴリズムを学ぶ一番のメリットは、 「大きな問題を小さく分けて考える力」が身につくこと です。
次に「アルゴリズム」という言葉を見かけたら、
「これは、どんな手順で答えを出しているんだろう?」
と考えてみてください。
カーナビも、レシピも、SNSも、プログラムも。 実はみんな「手順」で動いているのです。
問題を解決するための「手順」です。 料理のレシピをイメージすると分かりやすいです。
アルゴリズムは「どうやって解くか」という手順。 プログラムは、その手順をJavaやPythonなどの言葉でコンピューターに伝えるものです。
料理のレシピ、カーナビ、乗換案内、楽譜、家電の取扱説明書などがあります。
ユーザーの行動などを参考にして、 「どの投稿を、どの順番で表示するか」などを決める仕組みです。
同じ問題でも、どんなアルゴリズムを使うかによって、 コンピューターが処理する時間が大きく変わるからです。
基本的な考え方を学ぶだけなら、難しい数学は必要ありません。 まずは「手順を考える」という感覚を身につけることが大切です。
アルゴリズムは「答えへの道順」
難しそうに見える言葉でも、
その正体は「どうすればゴールに行けるか」という手順です。
「8を探して!」くらべっこ
1〜9が順番に並んでいるとき(第10章の例)

