複雑さと時空複雑さの問題:PubMedのノートのデータ構造408()

  1. 効率と低メモリ要件を確保するための良いアルゴリズム。どこアルゴリズムの実行時間の効率は、ストレージ容量の需要が必要なアルゴリズムの実行時の最大記憶容量です。すなわち、時間の複雑さと空間複雑度によって記述されるアルゴリズムの効率の尺度です。

  2. 周波数のステートメントは、ステートメントがアルゴリズムで実行された回数であり、時間の複雑さは、すべてのステートメントの頻度や大きさの分析です。

  3. Nは、問題のアルゴリズムのサイズ、関連するN個の時間複雑です。

  4. では、なぜこのアルゴリズムの時間計算量は、事前にそれを計算するために?いくつかの問題は、このようなミサイル制御アルゴリズムとして、イベントの後に計算することができません。①機械の性能:そして、時間コストに影響を与える他のいくつかの要因があります。②言語プログラミング(複数実装言語の効率を低下させる前進)。③コンパイラの質によって生成されたマシン命令。私たちは、最初に実行するアルゴリズムは、統計的な時間のオーバーヘッドを任せることはできません。

  5. 計算時間の複雑さの例
    ボイドloveyou {
    INT I = 1;
    ながら(I <= N){
    I ++;
    のprintf( "I愛する%D \ N-"、I);
    }
    詳細最後%のD内のprintf(「I愛します\)、「N- I;
    }
    アルゴリズムの時間計算量は、各ステートメントの回数を決定するための最も原始的な方法です。明らかに1+(N + 1)+( N)+(N)+ 1 = 3N + 3 [括弧は文の数である区別するために行われています]

  6. 上記のアルゴリズムを使用すると、文を計算する方法を使用することができ、あまりにも簡単です。開発プロセスに数十コード行の行数千のに直面し、多くの場合、それを計算する方法をすべきですか?
    次の2つの規則時間複雑解析プログラム
    ①追加ルール:番号、だけほとんどの項目を追加し、要因となります。T(N)= Tlの(N)+ T2(N)= O(F(N))+ O(G(N))= O(MAX(F(N)、G(N)))
    ②製品ルール:予約の数を乗算している
    T(N)= T1(N )XT2(N)= O(F(N))+ O(G(N))= O(F(N)XG(n))を
    大小比較一般的方法
    (!N-)O(1)<O(log2n)<O(N)<O(nlong2n)<O(N²)<O(n³)<O(2ⁿ)<O <O(nⁿ )[順番]は、多くの場合、パワーを意味します

  7. 上記理由により、それが発見された定数項は無視でき、そしてコードの実行順序は一度だけ、また、生成された定数項を実行します。分析は、時間の複雑さは、基本的な動作の1サイクルだけを選択するように計算します。また、(任意のリサイクルなし)プログラムのコードの一部は、時間の複雑さには影響を与えません。複数の層の循環、ちょうど最も深い懸念がある場合。

  8. 一部のイベントは、それぞれの時間を計算する時の複雑さ、最良の場合と最悪の場合、平均-ケースを決定する必要がありません。

  9. 時間に対するステップ計算の複雑:①(最も内側のループ)を見つけるための基本的な操作。実行回数N Tと基本的な操作の問題の大きさとの関係②、T(n)はF =描きます。時間複雑度はO(n)を得るために、定数項と係数、すなわちを除去③大小比較、。

  10. 宇宙複雑:アルゴリズム収納スペースを消費しました。
    S(N)= O(G (N))

  11. 単独で実行される格納プログラム命令の必要性、定数、変数、データの作業動作のデータ入力部等を備えています。したがって、入力データが空間に属する入力及び手順に加えて、唯一の余分なスペースを関係なくアルゴリズムの問​​題自体によって占められるので、スペースの複雑さ分析。宇宙複雑さはまだ加算や乗算の規則の規則に従ってください。

リリース元の2件の記事 ウォンの賞賛3 ビュー64

おすすめ

転載: blog.csdn.net/qq_38652677/article/details/105188050