【あるごりずむ】

アルゴリズム とは?

最終更新:
💡 問題を解く「手順書」

目的の結果を得るために、実行できる手順や計算方法を明確に定めたもの。プログラムはその手順を言語で実装する。同じ問題でも、選ぶ手順とデータ構造で必要な時間やメモリが変わる。

📌 このページのポイント
整数が偶数か奇数かを判定する手順 整数を入力 N = 13 2で割った余り 13 → 余り1 余りは 0? はい いいえ 出力:偶数 例:N = 8 出力:奇数 例:N = 13 入力 → 計算 → 条件判断 → 結果
整数Nを入力し、2で割った余りで分岐。奇数も正常な結果。
ひよこ ひよこ
アルゴリズムって具体的に何?
ペンギン先生 ペンギン先生
例えば整数が偶数か奇数か調べるなら、2で割った余りを求め、0なら偶数、それ以外なら奇数と返す手順だよ。図の13は余り1だから奇数。効率がよいものだけをアルゴリズムと呼ぶわけではないんだ。
ひよこ ひよこ
名簿を探す手順もそう?
ペンギン先生 ペンギン先生
そうだよ。先頭から順に見る線形探索と、並べ替え済みの配列で範囲を半分ずつ狭める二分探索は別の方法。二分探索には比較の順序がそろっている前提があり、並べ替えの手間は検索自体の回数と分けて考えるんだ。
ひよこ ひよこ
O記法は最悪の処理回数?
ペンギン先生 ペンギン先生
O記法は、入力が大きくなるときの増え方を上から押さえる表記だよ。最悪時だけでなく平均時の評価にも使い、どの条件かを明記する。O(n)は正確にn回という意味ではなく、O(1)も必ず一瞬という意味ではない。定数倍などを省いた増え方の評価なんだ。
ひよこ ひよこ
実務ではどう役立つの?
ペンギン先生 ペンギン先生
データが増えたときの時間やメモリを見積もり、手順やデータ構造を選ぶ手がかりになるよ。ただしO記法だけで小さなデータでの実測時間や使いやすさまで決まるわけではない。必要な処理と前提を整理し、実際の環境でも確かめるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「アルゴリズム」って出てきたら「問題を解くための手順・計算方法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Algorithm」 = アルゴリズム
💬 9世紀のペルシャの数学者アル・フワーリズミーの名前が語源だよ

参考資料

← 用語集にもどる