アルゴリズム とは、ある問題を解くための 決まった手順・段取り です。料理のレシピのように「どの材料を・どの順番で・どう処理するか」を、あいまいさなく並べたもので、プログラムの中身の設計そのものと言えます。
たとえば「たくさんの数字の中から一番大きい数を見つける」なら、「先頭を仮の最大とし、次々に比べてより大きければ入れ替える」という手順がアルゴリズムです。処理は基本的に、順番に進む・条件で枝分かれする・繰り返す、の組み合わせで表せます。
flowchart TD
A([スタート]) --> B{条件を満たす?}
B -- はい --> C[処理を実行]
B -- いいえ --> D[別の処理]
C --> E([終了])
D --> E
同じ結果を出すアルゴリズムでも、手順の良し悪しで 速さ・メモリの使用量・分かりやすさ が大きく変わります。データ量が増えたときにどれだけ処理時間が伸びるかの目安を「計算量」と呼び、良いアルゴリズムほど増え方がゆるやかです。どんな データ構造(入れ物)を選ぶかとも密接に関わります。