演算法導論學習筆記 第三章 函數增長

來源:互聯網
上載者:User
第三章 函數的增長

這一部分主要是數學知識,要區分嚴謹的數學和演算法之間的關係。

Θ記號,我自己的理解是函數漸進相等。f(n)=Θ(g(n)),f(n)=g(n),f(n),g(n)最高項次數相同。

O記號,相當於<=,f(n)=O(g(n)),f(n)<=g(n),f(n)最高項次數小於等於g(n).

Ω記號,>=,f(n)=ω(g(n)),f(n)>=g(n),f(n)最高項次數大於等於g(n)

o,<

ω, >

我不知道這麼理解是否準確。

演算法的已耗用時間可能與輸入有關,所以演算法的已耗用時間不一定能用一個函數來準確衡量。例如插入排序,最壞和最好分別是Θ(n^2),Θ(n)。

練習3.1-1

不妨設f(n)>g(n).存在n0,n>n0時,

F(n)+g(n)>= f(n)>=0

2f(n)>=f(n)+g(n)>=0

所以取c1=1/2,c2=1

 c1(f(n)+g(n))<=f(n)<=c2(f(n)+g(n))

證畢

3.1-2

C1n^b <= (n+a)^b <= c2n^b

C1 <= (1+a/n)^b <= c2

取 n0 = 2|a|,

C1 <=(1/n)^b(a取負數)

C2 >=2^b

3.1-3

O(n^x)表示漸進上界,至少修飾下界。

3.1-4

2^(n+1) = O(2^n)成立

取c1=3

2^(n+1)<3*2^n

2^(2n)=O(2^n)不成立

2^(2n)=2^n*2^n

C至少是2^n+1 才能保證2^(2n)<c2^n,此時c不是常數

3.1-5

根據定義證。

3.1-6

同上

3.1-7

F(n)=o(g(n))

對任意c1, c1f(n)<=g(n)

H(n)=w(g(n))

對任意c2, g(n)<=c2(h(n))

F(n)=o(g(n))交w(g(n))

對任意c1,c2

c1f(n)<=g(n)<=c2(f(n))

F(n)不存在。

3.1-8

Ω(g(n,m))={f(n,m):存在整數c,n0,m0,使對所有n>=n0,m>=m0,有0<=f(n,m)<=cg(n,m)}

Θ(g(n,m))={f(n,m):存在整數c1,c2,n0,m0,使對所有n>=n0,m>=m0,有0<=c1g(n,m)<=f(n,m)<=c2g(n,m)}

3.2 標準記號和常用函數

介紹了一些記號,和常用的數學函數及性質。

不理解的地方是:為什麼任何底大於1的指數函數比任何多項式函數增長得更快

斯特林近似公式書上貌似給錯了,應該是約等於而不是等於。

有個函數f(n)有多項界的變形:

f(n)=O(n^k) => lgf(n) = O(lgn)

用定義可以證明。

3.2-1

(1)

由f,g單調遞增得到n1 >= n2時f(n1)>=f(n2)且g(n1)>=g(n2)

則F(n1)+g(n2) >= f(n2)+g(n2)

又由g(n1)>=g(n2),f(g(n1))>=f(g(n2))。所以f(n)+g(n)和f(g(n))都是單調遞增

(2)

同上

 3.2-2

漸進下界用斯特林近似公式計算

3.2-4

┌┐

利用多項式界的變形:

f(n)=O(n^k) => lgf(n) = Θ(lgn),

如果lg┌lgn┐! = Θ(lgn),則它是多項有界

┌lgn┐!    = Θ(lgnlglgn) =>  ┌lgn┐!    = w(lgn)    !=   O(lgn)

(O(f(n)g(n)) => w(f(n)) && w(g(n)))?

lg┌lglgn┐!     =Θ(lglgnlglglgn)=o((lglgn)^2)=o(lgn)(把lgn看成多項式x,lg^2 x=o(x))

3.2-5

設n = 2^(2^)(2^……) (i個2)

lg(lg*n) = lgi

Lg*(lgn) = i-1

所以lg*(lgn)漸進大。

3.2-6

3.2-7

思考題3-5

A)反證法:

假設f(n) =  Ω無窮大(g(n))不成立,也就是說,只有有限個整數使f(n)>=cg(n)>=0成立

取n0為這些有限個數中最大的一個,n>=n0+1時,cg(n)>=f(n)>=0成立

B)

優點:無法找到Ω(g(n))時,可用Ω無窮大來近似衡配量序已耗用時間

缺點:Ω無窮大的範圍太大,衡量時可能精度不夠

C) |f(n)| = O(g(n)) <=> f(n)=O(g(n))且|f(n)|=Ω(g(n))

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.