1:漸進記號
我們主要用漸進記號來描述演算法的執行時間
θ記號:如θ(g(n)) 是函式的乙個漸進緊確界
o記號:如o(g(n)) 是函式的乙個漸進緊確上界
o記號:如o(g(n)) 是函式的乙個漸進緊確上界
ω記號:如ω(g(n)) 是函式的乙個漸進緊確下界 w
記號:如
w(g(n)) 是函式的乙個漸進緊確下界
漸進函式性質:
傳遞性:
f(n)=ω
(g(n))且g(n)=θ(h(n)) 蘊含f(n)=θ(h(n))
f(n)=o(g(n)) 且g(n)=o(h(n)) 蘊含f(n)=o(h(n))
f(n)=ω(g(n)) 且g(n)=ω(h(n)) 蘊含f(n)=ω(h(n))
f(n)=
o(g(n)) 且g(n)=
o(h(n)) 蘊含f(n)=
o(h(n))
f(n)=
w(g(n)) 且g(n)=
w(h(n)) 蘊含f(n)=
w(h(n))
自反性:
f(n)=θ(f(n))
f(n)=
o(f(n))
f(n)=
ω(f(n))
對稱性:
f(n)=θ(g(n))當且僅當g(n)=θ(f(n))
轉置對稱性:
f(n)=o(g(n))當且僅當g(n)=ω
(f(n))
f(n)=o(g(n))當且僅當g(n)=w(f(n))
兩個函式f和g的漸進比較和兩個實數a和b比較之間做一種模擬
f(n)=o(g(n)) 類似於a<=b
f(n)=o(g(n)) 類似於a
f(n)=
θ(g(n))類似於a=b
f(n)=ω(g(n)) 類似於a>=b
f(n)=
ω(g(n)) 類似於a>b
三分性 :對任意兩個函式,a和b下列三種情況恰有一種必須成立 ab
但是漸進函式對此不成立:因為,有可能函式┗的值在中間來回擺動,而不是取唯一值
標準記號與常用函式:
單調性,向下取整,向上取整,模運算,指數,對數,階乘,多重函式,多重對數函式
模運算:對任意整數a 和任意整數n,a mod n的值就是上a /n的餘數
a mod n = a - n└╁ a/n ┘
0<=a mod n
餘數相等的特殊記號:若(a mod n )=(b mod n )則記a≡b(m od n ) 並稱 模n 時 a 等價於b
若模n時 a 不等價於b ,則記a ≡/b(mod n)
函式的增長
1 漸進記號 我們主要用漸進記號來描寫敘述演算法的執行時間 記號 如 g n 是函式的乙個漸進緊確界 o記號 如o g n 是函式的乙個漸進緊確上界 o記號 如o g n 是函式的乙個漸進緊確上界 記號 如 g n 是函式的乙個漸進緊確下界 w記號 如 w g n 是函式的乙個漸進緊確下界 漸進函式...
演算法導論 函式的增長。
因為在計算機程式設計的學習中,我們需要掌握乙個類似於 需求量 的東西,怎麼去理解需求量呢,舉個最簡單的例子,你有乙個雙層迴圈,這個雙層迴圈所需要的時間,就是乙個增長量。具體一點可以這麼去解釋這個問題,如果你在乙個迴圈裡面的每乙個步驟所需要的時間都不同的話,那麼 你的需求量就是乙個分布式的增長。我們需...
函式的增長 演算法導論 2
1.引言 這一章主要是介紹一些概念,雖然很乏味,但是它確實能夠幫助我們去更好的分析 處理問題。2.漸進記號 1 記號 g n 通俗地講,若存在正常數才c1,c2,使得對於足夠大的n,函式f n 能 夾入 c1 g n 與c2 g n 之間,則f n 屬於集合 g n 通常把f n g n 記為f n...