データ構造とアルゴリズムに基づく計算時間の複雑------

以下の二つの側面から、アルゴリズムの効率:

  1. 時間効率:それは、アルゴリズムのにかかる時間を指し、
  2. スペース効率は:ストレージスペースでアルゴリズムを実行にかかったプロセスを指し

時間効率とスペース効率は時々矛盾しています。
ここでは、唯一の事前分析を議論し、また、事後解析手法ので客観的条件など、他のコンピュータのハードウェアとソフトウェアと。
前分析
アルゴリズムの実行時間は、実質的に実行するようにコンピュータに等しい簡単な操作(等、移動、比較そのような割り当てなどの)アルゴリズムを実行するのに必要な時間は、単純な製品番号です
マトリックス、例えば:

for(i=1;i<=n;i++)		//n+1次
	for(j=1;j<=n;j++)	//n*(n+1)次
	{
		c[i][j]=0;		//n*n次
		for(k=0;k<=n;k++)	//n*n*(n+1)次
			c[i][j]=c[i][j]+a[i][k]*b[k][j];//n*n*n次
	}

次いで、上記のアルゴリズムによって消費される時間は、(N)= 2Nアルゴリズムの実行時間各ステートメント和が、時間Tを消費することである。3 + 3Nと2 + 2N + 1。
アルゴリズムの異なる時間効率の比較を容易にするために、我々は彼らの大きさを比較します。

  • nが無限大に近づくと、T(N)/ F(ように、補助関数f(N)(すなわち、最高の大きさの機能のみを含有する)、もし n)が限界値であるが、ゼロの定数に等しくない(Fと呼ばれます、 n)とT(n)が同程度の関数です。で表さT(N)= O(F(N))、O(F(N))の時間計算量であることを特徴とします。

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

  • 見つける文が最大周波数である基本的な文として(つまり、実行アルゴリズムの最大数である)文のこと
  • 計算基本的なステートメント関数fの結果として生じる問題のサイズnの周波数の(N)
  • どちらの記号Oによって表される最高の大きさであり、

時間の複雑さは、ネストされた最も深い文の周波数によって決定されます。
例:

void exam(float x[][],int m,int n)
{
	float sum[];
	for(int i=0;i<m;i++)
	{
		sum[i]=0.0;
		for(int j=0;j<n;j++)
			sum[i]+=x[i][j];//嵌套最深层
	}

例:

i=1;	
while(i<=n)
	i=i*2;

実行回数を設定するX
2 X <= N-
X <=ログイン2 N-
の最大数を実行ログ2 T(N)= O(ログ、N- 2 N-)

公開された14元の記事 ウォンの賞賛0 ビュー277

おすすめ

転載: blog.csdn.net/lhyhaiyan/article/details/104564074