Li Hahaのデータ構造とアルゴリズムノート[パート2:時間の複雑さと空間の複雑さ]
アルゴリズム効率測定法
1.統計後の方法
短所:テスト手順には事前に番号を付ける必要があり、テスト環境は大きく異なります。
2.事前分析と推定方法の
定義:コンピュータプログラムを作成する前に、統計的方法に従ってアルゴリズムを推定します。
機能の漸進的な成長
正の整数Nがあります。n> Nの場合、f(n)は常にg(n)よりも大きく、fの漸進的な成長はgよりも速くなります。
- 3n +2≈3nのように、加算定数は省略できます。
- 定数に最高次の項を掛けたものは重要ではなく、省略できます
**結論:**アルゴリズムの効率を判断するために、関数内の定数やその他のマイナーアイテムは無視できることが多く、メインアイテムの順序(最高度)にさらに注意を払う必要があります。
アルゴリズムの時間計算量
プログラムの実行時間の必要性を指します。
ビッグO表記:
- 実行中のすべての加算定数を定数1に置き換えます
- 変更された実行回数関数では、最上位のアイテムのみが保持されます
- 最上位の項が存在し、1でない場合は、この画像を掛けた定数を削除します
- 最終結果は大きなOオーダーです
いくつかの典型的な次数があります:定数次数、線形次数、二乗次数、三次次数、対数次数、指数次数、
次数比較:
1 <logn <n <nlogn <n二乗<n立方体<2 ^ n <n!<n回平方
最悪の場合と平均的な場合
プログラムは、そのパフォーマンスを測定するために、その操作の最悪のケースを作成します。
平均的な状況も指標ですが、前者がより一般的に使用されます。
アルゴリズムのスペースの複雑さ
アルゴリズムに必要なスペースの量を指します。
プログラミング時にスペースを時間と交換することができます。
たとえば、うるう年のクエリは、計算によって、または配列を作成してクエリメソッドを採用することによって実現できます。
どちらが良いか悪いかは、実際の状況によって異なります。