アルゴリズムは、コンピューターサイエンスで非常に重要です。最も選択したアルゴリズムは、コンピューターが可能な限り最高の方法で指定されたタスクを実行することを確認します。効率が重要な場合は、適切なアルゴリズムを使用することが非常に重要です。アルゴリズムは、利用可能なリソースに応じてコンピュータープログラムを最適化する上で重要です。 。
最終的には、より良いアルゴリズムを介して問題を解決することを決定した場合、プログラム速度とメモリ消費量の最小の組み合わせを検索することが望まれます。
ブルートフォースアルゴリズムは、最も簡単な方法で問題を解決することに重点を置いています。それは、問題を解決するために基本的な手法を使用することを意味します。要するに、これらは使用する最も単純なアルゴリズムです。このアルゴリズムは結果の生成が比較的遅いため、シンプルさは速度がコストされます。最良の方法は、入力サイズが小さい問題でそれを使用することです。
この方法の基本的な考え方は、問題のサイズを分割することに基づいてプログラムを作成することです。各ループでは、一定の因子で問題を部分的に削減し、同じ方法でさらに処理します。これは高速アルゴリズムです。
1つの効率的な高速アルゴリズムを検索している場合、動的プログラミングがここにあります。このアルゴリズムでは、メモリスペースがかかる場合でも、実行速度にすべての焦点が施されています。この方法で時間のために空間を言うだけで犠牲になります。このアルゴリズムでは、実行速度が大幅に低下します。この方法は、サブ問題が重複している問題を解決するのに特に役立ちます。
貪欲なアルゴリズムは、ステップベースのアルゴリズムです。貪欲なアルゴリズムでは、各ステップの問題を分析します。次に、この特定のステップに最適なローカルに可能な最適ソリューションを使用します。その後、プロセスはすべてのステップに繰り返されます。これは、グローバルに最適なソリューションにつながります。
バブルソートの時間の複雑さ-O(n)および選択並べのそれは-o(n2)です
一般的なアルゴリズムの時間の複雑さはO(n^3)であり、StrassenのアルゴリズムはO(n^2.80)です。