IT用語を超やさしく理解する
アルゴリズム
別名: algorithm / 処理手順 / 手順
30秒で思い出す
アルゴリズムは、ある目的を達成するために、処理をどんな順番・条件・繰り返しで進めるかを決めた手順です。
同じ目的でも、手順の作り方によって分かりやすさや処理時間が変わることがあります。
超やさしく理解
アルゴリズムは、料理のレシピに少し似ています。
たとえば「カップ麺を作る」なら、
1. ふたを開ける
2. お湯を入れる
3. 3分待つ
4. 食べる
という順番があります。
もし「お湯を入れる」前に「3分待つ」をしても、うまくいきません。コンピュータも同じで、処理の順番が大切です。
ただし、料理のレシピとの違いもあります。コンピュータ向けのアルゴリズムでは、曖昧な指示ではなく、条件や繰り返しを含めて実行する人や機械が迷わないように、手順を明確に表すことが大切です。
正確にはどういうもの?
アルゴリズムは、問題を解いたり処理を行ったりするための手順です。
基本的な考え方として、次の3つがあります。
順次
処理を上から順番に実行します。
Aをする
↓
Bをする
↓
Cをする
分岐
条件によって、実行する処理を変えます。
雨が降っている?
├─ はい → 傘を持つ
└─ いいえ → そのまま出る
反復
同じ処理を、条件を満たす間や決められた回数だけ繰り返します。
10回になるまで
1回ずつ数える
実際のプログラムは、これらを組み合わせて複雑な処理を作ります。
アルゴリズムとプログラムは同じ?
同じではありません。
アルゴリズムは「どう解くかという手順・考え方」です。プログラムは、そのアルゴリズムをコンピュータが実行できる形で、特定のプログラミング言語などを使って表現したものです。
アルゴリズム
= 解き方・手順
プログラム
= その手順をコンピュータで実行できる形にしたもの
同じアルゴリズムを、異なるプログラミング言語で実装することもできます。
なぜ必要?
コンピュータに目的どおりの処理をさせるには、何を、どの順番で、どんな条件なら、何回繰り返すのかを明確にする必要があります。
また、同じ問題でもアルゴリズムによって必要な処理回数やメモリ量が変わるため、規模が大きくなるほど手順の選び方が重要になります。
よくある勘違い
アルゴリズムはプログラミング言語?
違います。アルゴリズムは解き方や処理手順そのものです。JavaScriptやPythonなどは、その手順を表現・実行するための言語です。
アルゴリズムは1つの問題につき1種類だけ?
いいえ。同じ目的でも複数の解き方が考えられます。どの方法が分かりやすいか、速いか、メモリを多く使うかなどを比べることがあります。
順番を書けば全部アルゴリズム?
単なる箇条書きでは不十分な場合があります。目的を達成できるよう、必要な処理や条件、繰り返しなどを手順として整理することが重要です。
ここまで分かればOK
- アルゴリズムは目的を達成するための処理手順である
- 順次・分岐・反復という基本的な考え方がある
- アルゴリズムとプログラムは同じではない
- 同じ問題にも複数のアルゴリズムがあり得る
- 手順の違いによって処理時間やメモリ使用量が変わる場合がある
資格との関係
ITパスポート試験
- シラバス
- Ver.6.5
- 必要な理解
- 仕組みまで理解できる
- 重要度
- 中
- 分野
- テクノロジ
関連するIT用語
理解できたか確認しよう
答えを選んで、なぜそうなるのかまで確認できます。
確認問題 1
アルゴリズムの基本
アルゴリズムの説明として最も適切なものはどれですか?
確認問題 2
アルゴリズムの基本構造
「パスワードが正しければログインを許可し、間違っていればエラーを表示する」という処理で中心となる考え方はどれですか?