(1)理論的には時間のかかるアルゴリズムの実行時間の周波数は、アウトカウントすることができない、マシンが知っているテストを実行している必要があります。しかし、我々はできませんし、テストマシン上のすべてのアルゴリズムのために必要ではない、ただそれは、アルゴリズムがそれにかかる時間を短縮するアルゴリズム、時間以上かかることを知っています。そして、アルゴリズム実行アルゴリズムの数と一緒に過ごした時間は、アルゴリズムがより頻繁に、それは時間とより多くを要し、文が実行されたステートメントに比例しています。実行アルゴリズム文の数は、ステートメントの周波数または時間周波数と呼ばれます。T(N)と呼びます。
Nを変更する場合(2)の時間計算量だけ述べ周波数の時、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の演算の基本的な操作を見つけます
- 各実行のそれに対応する数を決定する文、及び同程度の大きさT(n)を見つけます。
- O(N)の時間だけ複雑にしながら、二重O(N ^ 2)と比較して、いくつかの重ループを参照など、そのような高速半電源としてO(LOGN)と比較して、2つの点が、存在する場合、ループの半分を設定した場合、バイナリサーチは、次いで、時間複雑性O(nlogn)でした。
(5)例:
- O(1)
/ *このプログラムは、1100回ループの実行の合計を少し怖い見えますが、私たちにはnは見られませんか? いいえ。このプログラムを実行し、nは無関係です、 それは万年をリサイクルした場合でも、我々は関係なく、単に定数次関数* /です
X = 91。 Y = 100。 一方、(Y> 0) IF(X> 100){ X = X-10。 and--; }他 X ++;
//またはこの例の下に、時間の複雑さが一定の順序である:アルゴリズムの実行時間をnと成長の大型化の問題ではありません場合は、ステートメントのアルゴリズムの実行時間の何千があっても、大きな定数以外の何ものでもありません。このようなアルゴリズムの時間計算量はO(1)です。
I = TEMP;
I = J;
J = TEMP。
- O(N 2)
合計= 0; 用(i = 1; iが<= N; iは++) (; J <= N; J ++ J = 1)のために 合計++; //実行ステップ数は、基本的な操作に属し:N2回
- O(n)
= 0; B = 1。 用(i = 1; iが<= N; iは++){ S = A + B; //実行ステップの数は、基本的な操作に属する:N B =; //実行ステップの数は、基本的な動作に属する:N =秒; //実行ステップ数が、基本的な操作に属している:N }
- O(ログ2 Nを)
しながら、式(I = N <) 私は=私は2 *; //実行ステップ数は、基本的な操作に属します。
- O(N 3)
用(i = 0; iがn <; iは++){ 用(J = 0; J <I、J ++){ 以下のために(; K <J、K = 0 ++ K) X = X + 2; //実行ステップ数は、基本的な操作に属し:N3
}}
参考ます。http://blog.csdn.net/lovewaterman/article/details/37974745
参考ます。http://blog.csdn.net/booirror/article/details/7707551/
参考ます。http://blog.csdn.net/xiaoxiaopengbo/article/details/51583386
参考ます。http://www.cnblogs.com/xiaxianfei/p/5385081.html