詳細な時間と空間の複雑さ

データ構造は、多くの場合、それはいくつかの問題を解決するために私たちを助けることができ、特定のシナリオに基づいたアルゴリズムを設計するために私たちを必要とします。コアアルゴリズムは、役に立たない単純で、アルゴリズムの正しさが正しくないです。

もう一つのポイントは、我々はその時間と空間の複雑さを言うことが多い重要な役割を果たしていることです。アルゴリズムの時間複雑さを大幅に入力スケールの成長及び増殖とプログラム実行時間の順序を反映アルゴリズムのメリットが十分かどうかで反射します。基本的なアルゴリズムの時間複雑分析をマスターする必要があります。私たちは、データ構造に使用されるアルゴリズムの上限は、()は、下限他のどの程度、ここで話をしたではないOされています。

このような多くの通信時間がかかり、使用する命令、時間のかかるディスクアクセス時間の使用、などを検討するためのアルゴリズムの複雑さが、私たちは考えるのデータ構造でコア文の数だけは、それ上で実行され、今回のn彼はライン上無限を取りました、その後、複雑さの度合いである無限の同じ順序でそれを見つけます。ここで重要なのは、nに関連した単変量多項式を導出することです。 

100n²+ 0.02N + 10000000000000(nは無限大に近づく):規模アルゴリズムがNである場合、実行回数が必要に

実際には、我々はそれだけでは100n²で、リストの一番上の項目を参照して、他の人がいるため、低レベルの無限のn²あり、それは無視することができます。

複雑さの分析は、ちょうどうまく直接要因で書かれた最高のインデックスエントリ、見てください。

そして、それは時間の複雑さはO(n²)されます。

 

100N、0.000001n、3N + 20000,10000000000000n、0.01N + 1000000000000000000000000000000

書かれている複雑さはO(n)

1,3000,199990,10000000、

彼らは関係なく、データサイズの、多くの場合、数回の実行が可能であるため、複雑性O(1)書かれています。

 

用(i = 1; iが<= N; iは++)  

 {和++;}

時間計算量はΟ(n)は

 

用(i = 1; iが<= N; iは++)  

     (; J <= N; J ++ J = 1)のために  

    {和++;}

時間計算量はO(

 

上記二つの小さなプログラム場合共にOである(n²)

 

同様に、スペースの計算の複雑さにも。

多くのシーンでは、我々はより多くの時間を費やす必要があり、または、彼らはより多くのスペースを取るのいずれかがわかり、ほとんどの時間は、二人は両方を持つことはできません。

現在のコンピュータの開発によると、ソフトウェアの応答時間の大半は、そのような少し熱を実行していないにもかかわらず、あなたは2秒のアニメーション効果の後、小動物を入れ替える音楽Diminshingを演奏するなど、比較的高い需要があり、メモリの少しを使用するが、この割合は、あなただけのいくつかの開発者に挨拶することを忘れないでくださいゲームを削除することが推定されています。時間のほとんどは、さらに悪い低メモリや、状況の低いリアルタイム要件、下の小さな部分を使用した空間のための時間のためのスペース、時間を犠牲にすることが可能であってもメモリは、外部ソートアルゴリズムとして、極めて希少たちを注文されることがありこのような状況。

2つのアルゴリズムの長所と短所を比較、多くの人が文を実行する回数を比較するために、コンクリートコアデータに入れたい、結果は我々は、アルゴリズムの複雑さを評価して自身が、目まい置く評価するために、無限の時間の尺度であります具体的には、我々はすべての100個のデータアルゴリズムを使用して、このような億のデータとして最善のアルゴリズムを、選択するために、対応するデータが状況下ですることができカウントするために使用された場合と異なるシステムでは、同じトークン同じありそうでありませんでしたアルゴリズムの性能は、このような分散システムのように、高速なパフォーマンスは満足のいくよりも少し小さいランク付けし、同じではありません。

 

 

おすすめ

転載: blog.csdn.net/mad_sword/article/details/90738481