演算法分析 演算法的漸進效率分析

2022-03-12 09:48:50 字數 1735 閱讀 4409

一般用於界定函式集合的上界,漸進表示式o(g(n))的含義就是,c為正常數,函式集合o中的元素的最大值不會超過c.g(n)。f(n) = o(g(n))的含義是,函式f(n)的屬於集合o(g(n)),因為函式集合o中的最大值為c.g(n),所以f(n)的最大值為c.g(n)。由於只是漸進的上界,所以當函式g(n)的階數越小時,上界越緊確。

下面來看下 演算法導論 中是如何描述大o表示法的。

當函式的大小只有上界,沒有明確下界的時候,則可以使用大o表示法。f(n)= o(g(n))正式的數學定義:存在正常數c、n、n0,當n>n0的時,對於任意的f(n)對符合0<= f(n)<= c.g(n)。

————————————————

直觀視覺圖如下示:

一般用於界定函式集合的下界,漸進表示式ω(g(n))的含義就是,函式集合ω中的元素的最小值不會低於c.g(n)。f(n) = ω(g(n))的含義是,函式f(n)的屬於集合ω(g(n)),因為函式集合ω中的最小值為c.g(n),所以f(n)的最小值為c.g(n)。

演算法導論 中是如何描述大ω表示法的。     

當函式的大小只有下界,沒有明確的上界的時候,可以使用大ω表示法。f(n)= ω(g(n))正式的數學定義:存在正常數c、n、n0,當n>n0的時,對於任意的f(n)對符合0<= c.g(n)<= f(n)。

直觀視覺圖如下所示:

用於界定函式的漸進上界和漸進下界。當f(n)= θ(g(n))的時候,代表著g(n)為f(n)的漸進緊確界。而θ漸進描述符在所有的漸進描述符中是最嚴格的乙個,因為它既描述了函式的上界,有描述了函式的下界。

演算法導論 中是如何描述大θ表示法的。

f(n)= θ(c.g(n))正式的數學定義:存在正常數c1、c2、n、n0,當n>n0的時,對於任意的f(n)對符合c1.g(n)<= f(n)<= c2.g(n),c1.g(n)、c2.g(n)都是漸進正函式(當n趨於無窮大的時候,f(n)為正)。  

直觀視覺圖如下所示:              

重要性質: 當且僅當函式f(n)= o(g(n))and f(n)=ω(g(n))時,f(n)= θ(g(n))

分析下表中左側每行函式f

(n)和每列函式g

(n)之間的漸進效率關係,根據該關係屬於f

(n)îo(g(n)), f(n)îω(g(n)), f

(n)îθ(g(n))

三種中的哪一種,在下方空白處填寫合適的符號o,ω或θ。如果

f(n)和g

(n)之間有不止一種合適的漸進效率關係,僅填寫最嚴格的那種關係。第一行已作為示範給出。(無需給出計算過程,每空1分)

g(n)nn2

2nf(n)n2ωθ

onlogn4

(1.1)n

-10(n-2)!

5n+7n-1

答案:g

(n)n

n22n

f(n)n2ω

θonlogn4ωo

o(1.1)n

-10θoo

(n-2)!ωω

ω5n+7n-1θo

o

演算法時間效率分析

求效率函式的一般方法 big o 表示式 演算法的複雜度分析包括空間複雜度分析和時間複雜度分析。對於現代計算機,記憶體已經比較足夠,對演算法效率影響最大的是時間複雜度。在時間複雜度的分析中,拋開具體機器,我們主要研究的是執行的語句數量。執行的語句數量取決於需要處理的元素個數和演算法的迴圈結構。引入函...

排序演算法效率分析

目錄 排序方法 時間複雜度 平均 時間複雜度 最壞 時間複雜度 最好 空間複雜度 穩定性氣泡排序 o n2 o n2 o n o 1 穩定選擇排序 o n2 o n2 o n2 o 1 不穩定插入排序 o n2 o n2 o n o 1 穩定希爾排序 o n1.3 o n2 o n o 1 不穩定快...

KMP演算法的效率分析

上一節,我們研究了kmp演算法的實現原理,這節,我們從分析的角度看看kmp演算法的時間複雜度和它的正確性。我們先看計算匹配字串最長字尾陣列的的函式 private intgetlongestsuffix int s throws exception if pi s 1 pi s 0 int k ge...