プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

アルゴリズムと複雑さ


アルゴリズム

アルゴリズムは有限の命令セットであり、従うと特定のタスクを実行します。言語固有ではありません。指示を表すために任意の言語と記号を使用できます。

アルゴリズムの基準

  • 入力: ゼロ個以上の入力がアルゴリズムに外部から供給されます。
  • 出力: 少なくとも1つの出力がアルゴリズムによって生成されます。
  • 明確性: 各指示は明確で明確です。
  • 有限性: アルゴリズムでは、すべての異なるケースで有限のステップ数の後に終了します。
  • 有効性: 各指示は非常に基本的である必要があるため、それらの指示の目的は私たちにとって非常に明確でなければなりません。

アルゴリズムの分析

アルゴリズム分析は、計算の複雑さの重要な部分です。複雑性理論は、計算タスクを解決するためにアルゴリズムが必要とするリソースの理論的推定値を提供します。アルゴリズムの分析は、必要な時間とサイズ(実装中のストレージ用のメモリのサイズ)の観点から、アルゴリズムの問​​題解決能力を分析するプロセスです。ただし、アルゴリズムの分析の主な関心事は、必要な時間またはパフォーマンスです。

アルゴリズムの複雑さ

アルゴリズムの複雑さは、サイズ(n)の入力に対してアルゴリズムが必要とする時間とスペースの量を計算します。アルゴリズムの複雑さは2つのタイプに分けることができます。 時間計算量 およびスペースの複雑さ

アルゴリズムの時間計算量

時間計算量は、そのアルゴリズムの実行に必要な合計時間の式を決定するプロセスとして定義されます。この計算は、実装やプログラミング言語に完全に依存していません。

アルゴリズムの空間の複雑さ

スペースの複雑さは、アルゴリズムを正常に実行するために必要なメモリスペースの量を予測するための式を定義するプロセスとして定義されています。通常、メモリスペースはプライマリメモリと見なされます。


  1. アルゴリズムとフローチャートの違い

    この投稿では、フローチャートとアルゴリズムの違いを理解しましょう。 アルゴリズム これは、明確に定義された一連のステップとして定義されます。 これらの手順は、手元にある問題を解決する/解決する方法を提供します。 これは体系的で論理的なアプローチであり、手順は段階的に定義されます。 特定の問題の解決策を提供します。 このソリューションはマシンコードに変換され、システムによって実行されて関連する出力が得られます。 多くの単純な操作を組み合わせて、より複雑な操作を形成します。これは、コンピューターによって簡単に実行されます。 アルゴリズムは、自然言語、フローチャートなどを使用して表すことができます

  2. グラフとその走査アルゴリズム

    このセクションでは、グラフデータ構造とそのトラバーサルアルゴリズムについて説明します。 グラフは1つの非線形データ構造です。これは、いくつかのノードとそれらの接続されたエッジで構成されています。エッジは、ディレクターまたは無向の場合があります。このグラフは、G(V、E)として表すことができます。次のグラフは、G({A、B、C、D、E}、{(A、B)、(B、D)、(D、E)、(B、C)、(C、A )}) グラフには、2種類のトラバーサルアルゴリズムがあります。これらは、幅優先探索および深さ優先探索と呼ばれます。 幅優先探索(BFS) 幅優先探索(BFS)トラバーサルはアルゴリズムであ