logo

最も重要なタイプのアルゴリズム

アルゴリズムとは何ですか?

アルゴリズムは、問題を解決するための段階的な手順です。優れたアルゴリズムは、時間と空間の観点から最適化される必要があります。問題の種類が異なれば、最適化された方法で解決するには、異なる種類のアルゴリズム手法が必要になります。アルゴリズムには多くの種類がありますが、この記事では、最も重要で必須となる基本的なアルゴリズムについて説明します。

1. ブルートフォースアルゴリズム :

これは、最も基本的で最も単純なタイプのアルゴリズムです。ブルート フォース アルゴリズムは、問題に対する直接的なアプローチ、つまり、問題を見て最初に思い浮かぶアプローチです。より技術的に言えば、問題を解決するために利用可能なすべての可能性を繰り返すことと同じです。

例:



4桁の暗証番号のロックがある場合。 0 ~ 9 から数字を選択すると、ブルート フォースは、正しい PIN を取得するまで、0001、0002、0003、0004 など、考えられるすべての組み合わせを 1 つずつ試します。最悪の場合、正しい組み合わせを見つけるには 10,000 回の試行が必要になります。

2. 再帰的アルゴリズム :

このタイプのアルゴリズムは以下に基づいています 再帰 。再帰では、問題を同じタイプのサブ問題に分割し、基本条件の助けを借りて問題が解決されるまで自分自身を何度も呼び出すことによって問題が解決されます。
再帰アルゴリズムを使用して解決される一般的な問題には、次のようなものがあります。 数値の階乗 フィボナッチ数列 ハノイの塔 グラフの DFS 、など。

a) 分割統治アルゴリズム :

分割統治アルゴリズムでは、問題を 2 つのセクションで解決するという考え方があり、最初のセクションでは問題が同じタイプのサブ問題に分割されます。 2 番目のセクションでは、小さな問題を個別に解決し、結合した結果を追加して問題に対する最終的な答えを導き出します。
分割統治アルゴリズムを使用して解決される一般的な問題には、次のようなものがあります。 二分探索 マージソート クイックソート、 ストラッセンの行列乗算 、など。

おっとコンセプト

b) 動的プログラミングアルゴリズム :

このタイプのアルゴリズムは、 メモ化テクニック なぜなら、ここでは、何度も計算することを避けるために、以前に計算した結果を保存するという考えがあるからです。動的プログラミングでは、複雑な問題をより小さな問題に分割します。 重複する部分問題 そして将来の使用のために結果を保存します。
次の問題は、動的計画法アルゴリズムを使用して解決できます。 ナップサック問題 重み付けされたジョブのスケジューリング フロイド・ウォーシャルのアルゴリズム 、など。

c) 貪欲なアルゴリズム :

Greedy アルゴリズムでは、ソリューションは部分ごとに構築されます。次の部分を選択する決定は、それが即時に利益をもたらすかどうかに基づいて行われます。以前に行われた選択は決して考慮されません。
Greedy アルゴリズムを通じて解決できるいくつかの一般的な問題は次のとおりです。 ダイクストラ最短経路アルゴリズム プリムのアルゴリズム クラスカルのアルゴリズム ハフマンコーディング 、など。

mysql 表示ユーザー

d) バックトラッキングアルゴリズム :

バックトラッキング アルゴリズムでは、問題は段階的に解決されます。つまり、問題の制約をまったく満たさない解決策を削除しながら、一度に 1 つずつ段階的に解決策を構築しようとすることにより、問題を再帰的に解決するためのアルゴリズム手法です。時点。
バックトラッキング アルゴリズムを通じて解決できる一般的な問題には、次のようなものがあります。 ハミルトニアンサイクル M-カラーリング問題 Nクイーン問題 迷路の中のネズミの問題 、など。

3. ランダム化されたアルゴリズム :

ランダム化アルゴリズムでは、乱数を使用します。これは、期待される結果を決定するのに役立ちます。すぐに利益が得られるように乱数を選択する決定
ランダム化アルゴリズムを通じて解決できる一般的な問題には、クイックソートがあります。クイックソートでは、ピボットの選択に乱数を使用します。

4. ソートアルゴリズム :

ソート アルゴリズムは、データを昇順または降順でソートするために使用されます。また、効率的かつ有用な方法でデータを整理するためにも使用されます。
ソート アルゴリズムを通じて解決できる一般的な問題には、バブル ソート、挿入ソート、マージ ソート、選択ソート、クイック ソートなどがあります。これらはソート アルゴリズムの例です。

5. 検索アルゴリズム :

検索アルゴリズムは、特定の並べ替えられたデータまたは並べ替えられていないデータ内の特定のキーを検索するために使用されるアルゴリズムです。検索アルゴリズムを通じて解決できるいくつかの一般的な問題は次のとおりです。二分探索または線形探索は、検索アルゴリズムの一例です。

6. ハッシュアルゴリズム :

ハッシュ アルゴリズムは検索アルゴリズムと同じように機能しますが、キー ID を持つインデックス (キーと値のペア) が含まれます。ハッシュでは、特定のデータにキーを割り当てます。
いくつかの一般的な問題は、パスワード検証のハッシュ アルゴリズムを通じて解決できます。