アルゴリズムとは — 手順が変われば速さが桁で変わる
アルゴリズムとは、問題を解くためのあいまいさのない手順のこと。同じ問題でも、選んだ手順しだいで手数は桁違いに変わります。「64個の数から1つを探すレース」を入口に、正しさと効率という2つの物差しを、動かしながらつかみます。
1. アルゴリズム=問題を解く「手順書」
アルゴリズムとは、問題を解くための手順を、誰が(何が)実行しても同じ結果になるように書き下したものです。料理にたとえるなら、材料が入力、レシピがアルゴリズム、完成した料理が出力。ただしコンピュータは気を利かせてくれないので、「いい感じに混ぜる」のようなあいまいな指示は許されません。入力を受け取り、有限のステップで必ず止まり、正しい出力を返す — これがアルゴリズムの条件です。
そして大事なのは、同じ問題に対して解き方は1つではないこと。どの手順を選ぶかで、かかる手数がまるで違ってきます。まずはそれを1本のレースで体感しましょう。
2. 探索対決 — 前から順に見る vs 半分に絞る
問題:「小さい順に並んだ 64 個の数の中から、目標の値を見つけよ」。手順は2つ用意しました。
- 線形探索:前から1つずつ「これ?ちがう。これ?ちがう…」と確認していく。
- 二分探索:残っている範囲の真ん中と比べ、目標より小さければ右半分だけ、大きければ左半分だけを残す。1回比べるごとに候補が半分になる。
下のレースで目標の位置を動かしてみてください。二分探索の青い帯(まだ残っている候補範囲)が半分ずつ狭まっていくのがポイントです。
3. 手順の設計で手数が変わる — 「上位3つ」を選ぶ
今度は別の問題:「点数の山から上位3つを選べ」。すぐ思いつくのは (a)「全部を点数順に並べ替えて、上から3つ取る」。でも (b)「上位3つのメモだけ持って端から1回だけ眺め、メモの最小値より大きい数が出たら入れ替える」でも同じ答えが出ます。
2つの手順を同時にステップ実行してみましょう。答えは同じなのに、手数がまるで違うことが見えてきます。
4. N を増やすと差は「爆発」する
64件では「7回 vs 64回」でした。ではデータが1万件、100万件、10億件になったら? スライダーで N を増やして、最悪の比較回数がどう変わるかを見てください。
線形探索の手数は N に比例して伸びるのに、二分探索は N が2倍になっても +1 回しか増えません。この「増え方の違い」を系統立てて測る道具が、次のレッスンで学ぶ計算量とO記法です。
5. まとめ
- アルゴリズム=入力から正しい出力へ、有限のステップで到達する、あいまいさのない手順。
- 物差しは正しさと効率の2軸。同じ問題に複数の解法があり、効率は桁で変わる。
- 二分探索は「候補を半分に」の繰り返しで、10億件でも約30回。ただしソート済みが前提。
- N が大きくなるほど手順の良し悪しの差は爆発的に開く — 次講「計算量とO記法」で、この差を測る物差しを手に入れる。