C 初學記錄(演算法效率與度量)

2022-06-02 21:27:17 字數 743 閱讀 8496

時間效能

**演算法複雜性函式:

\[ f(n)=n^2 +1000n+\log_n+1000 $$**

當n的資料規模逐漸增大時,f(n)的增長趨勢:

* 當n增大到一定值以後,計算公式中影響最大的就是n的冪次級最高的項,並且其他的常數項和低冪次項都可以忽略,我們更關注的是它是乙個什麼量級的演算法,是線性的還是n方的,還是指數級的。

**大o表示法**

* 函式f、g定義域為自然數,值域為非負實數集

* **定義:**如果存在正數c和$n_0$,使得對任意的$$ n \geq n_0 $$ 都有$$ f(n) \leq cg(n)。\]

大o表示法的單位時間

函式返回

大o表示法的運算規則

for(int i=0;i巢狀迴圈中第乙個和第二個for都是o(n)的時間複雜度,兩者的乘積是:

\[\sum(n-i)=\frac=o(n^2)

\]演算法漸進分析:大\(\omega\)表示式

增長率大小比較:$$\log_2n \leq n \leq n \log_2n \leq n^2 \leq 2^n$$

演算法複雜性分析

例:順序尋找k值

最差情況 o(n)

如果等概率分布 o(n)

概率不等

度量演算法效率

度量乙個演算法的效率,乙個方法是事後統計,即先將演算法實現,然後輸入適當的資料執行,測算其時間和空間開銷。其缺點顯而易見,不僅編寫程式實現演算法將花費較多的時間和精力,而且實驗結果依賴於計算機的軟硬間等環境因素,容易掩蓋演算法本身的優劣。所以通常採用事前分析估算的方法估算演算法所消耗的資源。不談與計...

演算法效率的度量

常見時間複雜度 當演算法的時間複雜度為 即使n的值很小,實際的程式執行時間也是不可接受的!大o的n的3次方是工程開發時時間複雜度的臨界點。當演算法在最壞情況下仍能滿足需求時,可以推斷演算法的最好情況和平均情況都滿足需求。空間複雜度 推導時間複雜度的方法同樣適用於空間複雜度。空間與時間的策略 多數情況...

演算法效率的度量

演算法的時間複雜度是乙個函式,它定量描述了該演算法的執行時間。這是乙個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。t n o f n 總結幾點求時間複雜度的規則 ...