時間の複雑さと空間の複雑さの説明

 

 

  私たちは、定義:文と呼ばれるアルゴリズムの実行回数  文章周波数  または  時間周波数を

  表記:効率試験アルゴリズム、メイン考慮  複雑最悪の時間  と  平均時間の複雑さは 、一般的に指定されていない、議論の時間計算量は最悪の場合の時間複雑です

1、時間の複雑さ

  時間のかかるを実行するためのアルゴリズムは、理論的にはマシンが知っているテストを実行している必要があり、アウトカウントすることはできません。しかし、我々はできませんし、テストマシン上のすべてのアルゴリズムのために必要ではない、ただそれは、アルゴリズムがそれにかかる時間を短縮するアルゴリズム、時間以上かかることを知っています。そして、アルゴリズム実行アルゴリズムの数と一緒に過ごした時間は、アルゴリズムがより頻繁に、それは時間とより多くを要し、文が実行されたステートメントに比例しています。

  時間周波数において、nが変化したとき、時間T(N)の周波数を変更していき、問題の規模と呼ばれます。しかし、それは定期的に変更し、その時の複雑さの概念の導入。一般的に、繰り返しの基本的な動作アルゴリズムは、場合nが無限大に近づくようにT(n)を表し、補助関数F(N)であれば、T(で、問題のサイズnの関数です。 N)/ F(n)が一定のゼロ限界と呼ばれるF(n)がTに等しくない(N)と同じ次数の関数です。T(N)= O(F(N))で表される、O(F(N))は、前記アルゴリズムの進行時間複雑であり、時間の複雑性と呼びます。

  計算時間複雑

  (1)アルゴリズムの実行時間は、アルゴリズム命令の数千があっても、N問題と成長の成長にスケーリングしない場合、実行時間は比較的大きい一定です。アルゴリズムのような時間計算量はO(1)です。

   オーダーO(ログの定数注文O、:プレス大きさの昇順、共通の時間複雑である(1)2 N-)を、線形順序のO(N)、線形対数オーダーO(nlog 2 N-)、オーダーOの広場(N- 2)、立方オーダO(N 3)、...、オーダーO(N-番目K K)、指数オーダーO(2 N-)。問題の規模とNは、アルゴリズムの効率より低い、時間複雑度が増加して増加しています。

1 I = 100000。
2一方(i--){ 
3のprintf( "こんにちは"); 
4}

  回答:

  ;それが実行の非常に大きな数であるが、実行時間は主に第三のラインにより実行される一定値であるので、も彼のために一定の時間複雑性O(1)アルゴリズムは、100,000ループ

  ネストされた複数のループがある場合(2)、アルゴリズムの時間の複雑さはループの周波数の最大ネスティングすることによって決定されます

1、X = 0; 
2(i = 1; iは++; iは= N <)
3(J = 1; J <= I; J ++)
(; K <= J ++ kはk = 1)のための4 
5×++。

  このアルゴリズムは、主ライン5で行われ、その実行時間は一定値であるが、それは上記の3つのサイクルを有しているが[(N-1)](最も外側から内側に)各ごと別々に行われます 、[ (N-1)+(N -2)...]、[(N-1-1)+(N-2-1)....] 回、アルゴリズムの時間複雑度は、O(ありますN- 3 +残留低い規約)≈O(N- 3)。

  PS:簡単な計算法(参考のみ):1サイクルn、ネストされたN-であり+ +1、パラレル+ nは、大きい最終結果が得られる方。

2、スペースの複雑さ

  プログラムの空間の複雑さは、所望のサイズを実行して終了するプログラムメモリを指します。

  (1)固定部。値に関係なく、この部分空間の入力/出力データ数の数とサイズ、。命令空間(すなわち、コード領域)を含め、データ空間(定数、単純変数)などが占める空間。この部分は、静的なスペースです。
  (2)変数空間動的に割り当てられた空間の主要部を含む空間と、再帰スタックに必要なスペースを。スペースおよび関連するアルゴリズムのこの部分。
  F(N)で表されるアルゴリズムによって必要とされる記憶空間。S nは、問題の規模であり、(N)= O(F(N))、S(n)は、空間的複雑度を表します。

  私たちは、定義:文と呼ばれるアルゴリズムの実行回数  文章周波数  または  時間周波数を

  表記:効率試験アルゴリズム、メイン考慮  複雑最悪の時間  と  平均時間の複雑さは 、一般的に指定されていない、議論の時間計算量は最悪の場合の時間複雑です

1、時間の複雑さ

  時間のかかるを実行するためのアルゴリズムは、理論的にはマシンが知っているテストを実行している必要があり、アウトカウントすることはできません。しかし、我々はできませんし、テストマシン上のすべてのアルゴリズムのために必要ではない、ただそれは、アルゴリズムがそれにかかる時間を短縮するアルゴリズム、時間以上かかることを知っています。そして、アルゴリズム実行アルゴリズムの数と一緒に過ごした時間は、アルゴリズムがより頻繁に、それは時間とより多くを要し、文が実行されたステートメントに比例しています。

  時間周波数において、nが変化したとき、時間T(N)の周波数を変更していき、問題の規模と呼ばれます。しかし、それは定期的に変更し、その時の複雑さの概念の導入。一般的に、繰り返しの基本的な動作アルゴリズムは、場合nが無限大に近づくようにT(n)を表し、補助関数F(N)であれば、T(で、問題のサイズnの関数です。 N)/ F(n)が一定のゼロ限界と呼ばれるF(n)がTに等しくない(N)と同じ次数の関数です。T(N)= O(F(N))で表される、O(F(N))は、前記アルゴリズムの進行時間複雑であり、時間の複雑性と呼びます。

  計算時間複雑

  (1)アルゴリズムの実行時間は、アルゴリズム命令の数千があっても、N問題と成長の成長にスケーリングしない場合、実行時間は比較的大きい一定です。アルゴリズムのような時間計算量はO(1)です。

   オーダーO(ログの定数注文O、:プレス大きさの昇順、共通の時間複雑である(1)2 N-)を、線形順序のO(N)、線形対数オーダーO(nlog 2 N-)、オーダーOの広場(N- 2)、立方オーダO(N 3)、...、オーダーO(N-番目K K)、指数オーダーO(2 N-)。問題の規模とNは、アルゴリズムの効率より低い、時間複雑度が増加して増加しています。

1 I = 100000。
2一方(i--){ 
3のprintf( "こんにちは"); 
4}

  回答:

  ;それが実行の非常に大きな数であるが、実行時間は主に第三のラインにより実行される一定値であるので、も彼のために一定の時間複雑性O(1)アルゴリズムは、100,000ループ

  ネストされた複数のループがある場合(2)、アルゴリズムの時間の複雑さはループの周波数の最大ネスティングすることによって決定されます

1、X = 0; 
2(i = 1; iは++; iは= N <)
3(J = 1; J <= I; J ++)
(; K <= J ++ kはk = 1)のための4 
5×++。

  このアルゴリズムは、主ライン5で行われ、その実行時間は一定値であるが、それは上記の3つのサイクルを有しているが[(N-1)](最も外側から内側に)各ごと別々に行われます 、[ (N-1)+(N -2)...]、[(N-1-1)+(N-2-1)....] 回、アルゴリズムの時間複雑度は、O(ありますN- 3 +残留低い規約)≈O(N- 3)。

  PS:簡単な計算法(参考のみ):1サイクルn、ネストされたN-であり+ +1、パラレル+ nは、大きい最終結果が得られる方。

2、スペースの複雑さ

  プログラムの空間の複雑さは、所望のサイズを実行して終了するプログラムメモリを指します。

  (1)固定部。値に関係なく、この部分空間の入力/出力データ数の数とサイズ、。命令空間(すなわち、コード領域)を含め、データ空間(定数、単純変数)などが占める空間。この部分は、静的なスペースです。
  (2)変数空間動的に割り当てられた空間の主要部を含む空間と、再帰スタックに必要なスペースを。スペースおよび関連するアルゴリズムのこの部分。
  F(N)で表されるアルゴリズムによって必要とされる記憶空間。S nは、問題の規模であり、(N)= O(F(N))、S(n)は、空間的複雑度を表します。

おすすめ

転載: www.cnblogs.com/Freedom0221/p/10992901.html
おすすめ