演算法分析數學基礎

2021-10-01 22:32:58 字數 521 閱讀 3815

我們將兩個函式的相對增長速度稱為相對增長率,從數學角度上來說其實就是一階導數,看誰的增長速度更快,比如f(x

)=x2

f(x)=x^2

f(x)=x

2的增長速度比g(x

)=

xg(x)=x

g(x)=x

要更快。

在演算法分析中:

基於上面的定義,有幾點推論:

對於不同的程式邏輯都會對應不同增長率,所以不同的演算法在大資料下執行效率千差萬別,對於一般的順序執行或者判斷,他的增長率為o(1

)o(1)

o(1)

,你不管傳入多大的入參,執行起來是無差別的,而對於迴圈語句則意味著o(n

)o(n)

o(n)

,而迴圈中嵌入了k重迴圈,則增長率是o(n

k)

o(n^k)

o(nk

)。而一些折半或者二分演算法他的增長率就是o(l

ogn)

o(logn)

o(logn

)。

演算法分析基礎

1.級數 a.算數級數 等差 1 2 3 4 n o n 2 末項的平方 b.冪數級數 1 a 2 a n a o n a 1 末項的冪數加一次方 c.幾何級數 a 0 a 1 a 2 a n o a n 末項 d.調和級數 1 1 1 2 1 3 1 n o logn log1 log2 log3...

演算法分析基礎

定義 如果存在正常數c與n0,使得當n n0時t n cf n 則記為 t n o f n 如果存在正常數c與n0,使得當n n0時t n cg n 則記為 t n omega g n 當且僅當t n o h n 且t n h n 時,則 t n theta h n 如果t n o p n 且t n...

演算法分析基礎

定義 如果存在正常數c與n0,使得當n n0時t n cf n 則記為 t n o f n 如果存在正常數c與n0,使得當n n0時t n cg n 則記為 t n omega g n 當且僅當t n o h n 且t n h n 時,則 t n theta h n 如果t n o p n 且t n...