
コンピュータに何かをさせるには、コンピュータプログラムを書かなければなりません。コンピュータプログラムを書くために、あなたはコンピュータに、あなたがそれが何をしたいのかを正確に段階的に伝える必要があります。次に、コンピュータは、各ステップを機械的に実行してプログラムを「実行」し、最終目標を達成します。
コンピュータに何をすべきかを指示するとき、それがどのように行われるかを選択することもできます。そこで、コンピューターアルゴリズムが登場します。アルゴリズムは、仕事を遂行するために使用される基本的な手法です。アルゴリズムの概念を理解するのに役立つ例に従ってみましょう。
空港に到着した友人がいて、友人が空港からあなたの家に行く必要があるとします。これがあなたがあなたの家に着くためにあなたの友人に与えるかもしれない4つの異なるアルゴリズムです:
タクシーのアルゴリズム:
- タクシースタンドに行きます。
- タクシーに乗りなさい。
- 運転手に私の住所を教えてください。
コールミーアルゴリズム:
- あなたの飛行機が到着したら、私の携帯電話に電話してください。
- 手荷物受取所の外で会いましょう。
レンタカーアルゴリズム:
- レンタカーの場所へのシャトルを利用してください。
- 車を借りる。
- 指示に従って私の家に着きます。
バスアルゴリズム:
- 手荷物受取所の外で、バス番号70に乗車します。
- メインストリートのバス14に乗り換えます。
- エルム通りで下車します。
- 私の家まで北に2ブロック歩きます。
これらの4つのアルゴリズムはすべてまったく同じ目標を達成しますが、各アルゴリズムはまったく異なる方法でそれを実行します。各アルゴリズムには、異なるコストと異なる移動時間もあります。たとえば、タクシーを利用するのがおそらく最速の方法ですが、最も費用もかかります。バスに乗るのは間違いなく安価ですが、かなり遅くなります。状況に基づいてアルゴリズムを選択します。
コンピュータプログラミングでは、多くの場合、特定のタスクを実行するためのさまざまな方法(アルゴリズム)があります。各アルゴリズムには、さまざまな状況で長所と短所があります。コンピュータはリストの並べ替えに多くの時間を費やすため、並べ替えは多くの調査が行われた1つの場所です。並べ替えに使用される5つの異なるアルゴリズムは次のとおりです。
- ビンソート
- マージソート
- バブルソート
- シェルソート
- クイックソート
あなたは1と10の間に百万の整数値を持っており、あなたがそれらをソートする必要がある場合は、ビンは、ソートに使用する権利アルゴリズムです。百万冊の本がある場合は、クイックソートが最適なアルゴリズムかもしれません。さまざまなアルゴリズムの長所と短所を知ることで、目前のタスクに最適なアルゴリズムを選択できます。
ここにいくつかの興味深いリンクがあります:
- whatis.com:アルゴリズム
- Javaのしくみ
- Cプログラミングのしくみ
- PCのしくみ
- 暗号化のしくみ
- ファイル圧縮のしくみ