実務で出てくるのは、ここだけ
このタブは「発展」です。アルゴリズムの名前を知らなくても、仕事は回ります。ふだんの開発で効いてくるのは、この 5 つくらい。残りの節はたたんであるので、興味が出たときに開いてください。
発展ここから先は、興味が出たときに開いてください。
まず「速さの目安」(計算量・O 記法)
データが増えると、手順によって時間の増え方がまるで違います。100 万件のデータを、1 回 1 マイクロ秒で処理するとしたときの目安です。実際のパソコンはもっと速いので、秒数そのものより、行どうしの差を見てください。
データの持ち方(データ構造)
どう並べて持つかで、得意な操作が変わります。アルゴリズムとはいつも組で考えます。 データベースのインデックスで使う B-tree は、データベースのタブで動かせます。
アルゴリズムと、どこで使われているか
種類で絞り込めます。「使われている所」は、ふだん目にするサービスや道具の中です。
動かして見る
同じデータで、手順の違いがどれだけ効くかを比べます。
並べ替えの比べっこ
同じ 40 本の棒を、左はバブルソート、右は選んだやり方で並べます。数字は「比べた回数」です。
バブルソート 0 回
マージソート 0 回
数当て:端から探す vs 半分ずつ探す
1〜1,000,000 の中に隠した数を探します。「端から」は 1 つずつ、「二分探索」は真ん中を見て半分ずつ減らします。
AI 時代のアルゴリズム
AI の中身も、アルゴリズムとデータ構造でできています。いまの AI(大規模言語モデル、LLM)の仕組みのうち、エンジニアが知っておくと役立つものを集めました。 AI に仕事を任せるときの考え方はAI と開発のタブへ。
動かして見る: 意味の近さを、距離で見る(ベクトル検索のミニ版)
言葉を押すと、近い順に 3 つが光ります。本物は 1 つの言葉が数百〜数千個の数字(次元)でできていますが、ここでは 2 個にして平面に置いた作り物の例です。