演算法導論 第三章 掌握漸進符號O和

2021-06-21 22:28:51 字數 851 閱讀 3791

本篇文章基於麻省理工學院的公開課第二講。

首先從純數學的角度上來理解。

exam1:

f(n)=o(g(n)),代表存在常數c和n0,使得n>=n0時,滿足0<=f(n)<=c*g(n)。

比如2*n^2=o(n^3),這裡n^2代表n的平方,n^3代表n的三次方,用過matlab的應該很好理解。

這裡套用o的定義可知,即存在常數c=1和n0=2,使得n>=n0=2時,滿足0<=2*n^2<=n^3。

這個例子應該很好理解。o可以理解成小於等於。

但實際上的意義是f(n)屬於g(n)構成的函式集,不過我們可以用等號來表示。

exam2:

f(n)=n^3+o(n^2),代表存在h(n)屬於o(n^2),使得f(n)=n^3+h(n).

也就是f(n)的主要部分是n^3,但還包括了低階項o(n^2)。

exam3:

n^2+o(n)=o(n^2),代表對於任意的f(n)屬於o(n^2),都存在h(n)屬於o(n^2),使得n^2+f(n)=h(n)。

由以上三個例子我們可以看出,o很好的表示了上界,可以理解成小於等於。

我們還需要符號來表示下界,那就是ω

exam1:

ω(g(n))=f(n),從定義上來看,存在常數c>0,n0>0,使得當n>=n0時,滿足0<=c*g(n)<=f(n).

exam2:

n^0.5=ω(lgn),這裡n^0.5代表n的平方根,lgn代表log2(n),即以2為底。

根據定義,我們可以理解成:對於足夠大的n,n^0.5至少是lg(n)的常數倍。

ω基本上對應於大於等於。

綜上,o和ω很好的表示了上界和下界。o對應於小於等於,ω對應於大於等於。

工程導論第三章

工程與技術的關係 工程依賴技術的發展,技術是實現工程的手段。其二,技術比工程更依賴科學的發展。由此可見,兩者的關係十分密切,但是相較於工程,技術對於科學發展的依賴性更強。工程技術的傳統學科很多,大家最熟悉的因該是土木工程,但其實還有很多這樣的工程學科,我們舉一些例子 建築工程 機械工程 電氣工程 化...

工程導論第三章

第三章 需求分析 分析方法都應該遵守以下準則 1 必須理解並且描述問題的資訊域,根據這條準則建立資料模型。2 必須定義軟體應該完成的功能,這條準則要求建議功能模型。3 必須描述作為外部事件結果的軟體行為,這條準則要求建立行為模型。4 必須對描述資訊,功能和行為的模型進行分解,用層次的方式細節。需求分...

演算法第三章

單調遞增最長子序列分析 1.1 i 0時 dp 0 1 其餘情況 dp i max dp i dp j 1 0 j i 1.2填表的維度 一維 填表的範圍 dp 0 到 dp n 1 填表順序 從左向右 1.3因為要以每乙個數字終點,然後從頭遍歷到他本身,所以時間複雜度位o n 2 空間複雜度 建立...