(二)数学基础——算法设计与分析


一、复杂度函数的阶

我们可以用函数的阶数来形象地描绘函数之间增长快慢的关系。


1.1 同阶函数集合

定义函数 f ( n ) f(n) f(n)的同阶函数集合 Θ ( f ( n ) ) \Theta (f(n)) Θ(f(n))为:
Θ ( f ( n ) ) = { g ( n ) ∣ ∃ c 1 , c 2 > 0 , n 0 , ∀ n > n 0 , c 1 f ( n ) ≤ g ( n ) ≤ c 2 f ( n ) } \Theta (f(n))=\left \{ g(n) \mid \exists c_1,c_2>0,n_0,\forall n>n_0,c_1f(n)\leq g(n)\leq c_2f(n) \right \} Θ(f(n))={g(n)c1,c2>0,n0,n>n0,c1f(n)g(n)c2f(n)}
即:从某一项起, f ( n ) f(n) f(n)的线性范围内的函数的集合。
请添加图片描述

注意:

  • g ( n ) ∈ Θ ( f ( n ) ) g(n)\in \Theta (f(n)) g(n)Θ(f(n))常记为 g ( n ) = Θ ( f ( n ) ) g(n)=\Theta (f(n)) g(n)=Θ(f(n)),称 g ( n ) g(n) g(n) f ( n ) f(n) f(n)同阶

定理:
f ( n ) = Θ ( g ( n ) ) ⇔ f ( n ) = O ( g ( n ) ) 且 f ( n ) = Ω ( g ( n ) ) f(n)=\Theta (g(n)) \Leftrightarrow f(n)=O(g(n)) 且f(n) = \Omega (g(n)) f(n)=Θ(g(n))f(n)=O(g(n))f(n)=Ω(g(n))


1.2 低阶函数集合

定义函数 f ( n ) f(n) f(n)的低阶函数集合 O ( f ( n ) ) O(f(n)) O(f(n))为:
O ( f ( n ) ) = { g ( n ) ∣ ∃ c > 0 , n 0 , ∀ n > n 0 , 0 ≤ g ( n ) ≤ c f ( n ) } O(f(n))=\left \{ g(n) \mid \exists c>0,n_0,\forall n>n_0,0\leq g(n)\leq cf(n) \right \} O(f(n))={g(n)c>0,n0,n>n0,0g(n)cf(n)}
即:从某一项起,始终小于 f ( n ) f(n) f(n)的线性倍数的函数的集合。

请添加图片描述

注意:

  • g ( n ) ∈ O ( f ( n ) ) g(n)\in O(f(n)) g(n)O(f(n))常记为 g ( n ) = O ( f ( n ) ) g(n)=O(f(n)) g(n)=O(f(n)),称 f ( n ) f(n) f(n) g ( n ) g(n) g(n)的上界

1.3 高阶函数集合

定义函数 f ( n ) f(n) f(n)的高阶函数集合 Ω ( f ( n ) ) \Omega (f(n)) Ω(f(n))为:
Ω ( f ( n ) ) = { g ( n ) ∣ ∃ c > 0 , n 0 , ∀ n > n 0 , 0 ≤ c f ( n ) ≤ g ( n ) } \Omega (f(n))=\left \{ g(n) \mid \exists c>0,n_0,\forall n>n_0,0\leq cf(n) \leq g(n) \right \} Ω(f(n))={g(n)c>0,n0,n>n0,0cf(n)g(n)}
即:从某一项起,始终大于 f ( n ) f(n) f(n)的线性倍数的函数的集合。

请添加图片描述

注意:

  • g ( n ) ∈ Ω ( f ( n ) ) g(n)\in \Omega(f(n)) g(n)Ω(f(n))常记为 g ( n ) = Ω ( f ( n ) ) g(n)=\Omega(f(n)) g(n)=Ω(f(n)),称 f ( n ) f(n) f(n) g ( n ) g(n) g(n)的下界

1.4 严格低阶函数集合

定义函数 f ( n ) f(n) f(n)的严格低阶函数集合 o ( f ( n ) ) o(f(n)) o(f(n))为:
o ( f ( n ) ) = { g ( n ) ∣ ∀ c > 0 , ∃ n 0 , 0 ≤ g ( n ) < c f ( n ) 对 n ≥ n 0 恒 成 立 } o(f(n))=\left \{ g(n) \mid \forall c>0, \exists n_0 ,0\leq g(n) < cf(n) 对n\ge n_0恒成立\right \} o(f(n))={g(n)c>0,n0,0g(n)<cf(n)nn0}
即:对于任意的正实数倍数的 f ( n ) f(n) f(n),从某一项开始,该函数总在其下方。

请添加图片描述

注意:

  • g ( n ) ∈ o ( f ( n ) ) g(n)\in o (f(n)) g(n)o(f(n))常记为 g ( n ) = o ( f ( n ) ) g(n)=o (f(n)) g(n)=o(f(n)),称 f ( n ) f(n) f(n) g ( n ) g(n) g(n)的严格上界

定理:
f ( n ) = o ( g ( n ) ) ⇔ lim ⁡ n → ∞ f ( n ) g ( n ) = 0 f(n)=o(g(n))\Leftrightarrow \lim_{n \to \infty} \frac{f(n)}{g(n)}=0 f(n)=o(g(n))nlimg(n)f(n)=0


1.5 严格高阶函数集合

定义函数 f ( n ) f(n) f(n)的严格高阶函数集合 ω ( f ( n ) ) \omega (f(n)) ω(f(n))为:
ω ( f ( n ) ) = { g ( n ) ∣ ∀ c > 0 , ∃ n 0 , 0 ≤ c f ( n ) < g ( n ) 对 n ≥ n 0 恒 成 立 } \omega (f(n))=\left \{ g(n) \mid \forall c>0, \exists n_0 ,0\leq cf(n) < g(n) 对n\ge n_0恒成立\right \} ω(f(n))={g(n)c>0,n0,0cf(n)<g(n)nn0}
即:对于任意的正实数倍数的 f ( n ) f(n) f(n),从某一项开始,该函数总在其上方。

注意:

  • g ( n ) ∈ ω ( f ( n ) ) g(n)\in \omega (f(n)) g(n)ω(f(n))常记为 g ( n ) = ω ( f ( n ) ) g(n)=\omega (f(n)) g(n)=ω(f(n)),称 f ( n ) f(n) f(n) g ( n ) g(n) g(n)的严格下界

定理:
f ( n ) = ω ( g ( n ) ) ⇔ lim ⁡ n → ∞ f ( n ) g ( n ) = ∞ f(n)=\omega (g(n))\Leftrightarrow \lim_{n \to \infty} \frac{f(n)}{g(n)}=∞ f(n)=ω(g(n))nlimg(n)f(n)=


二、函数阶的性质

(1)传递性
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 ) = ω ( g ( n ) ) ∧ g ( n ) = ω ( h ( n ) ) ⇒ f ( n ) = ω ( h ( n ) ) \begin{array}{l} f(n)=\Theta(g(n)) \wedge g(n)=\Theta(h(n)) \Rightarrow f(n)=\Theta(h(n)) \\ f(n)=O(g(n)) \wedge g(n)=O(h(n)) \Rightarrow f(n)=O(h(n)) \\ f(n)=\Omega(g(n)) \wedge g(n)=\Omega(h(n)) \Rightarrow f(n)=\Omega(h(n)) \\ f(n)=o(g(n)) \wedge g(n)=o(h(n)) \Rightarrow f(n)=o(h(n)) \\ f(n)=\omega(g(n)) \wedge g(n)=\omega(h(n)) \Rightarrow f(n)=\omega(h(n)) \end{array} 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)=ω(g(n))g(n)=ω(h(n))f(n)=ω(h(n))

(2)自反性
f ( n ) = Θ ( f ( n ) ) f ( n ) = O ( f ( n ) ) f ( n ) = Ω ( f ( n ) ) \begin{aligned} f(n) &=\Theta(f(n)) \\ f(n) &=O(f(n)) \\ f(n) &=\Omega(f(n)) \end{aligned} f(n)f(n)f(n)=Θ(f(n))=O(f(n))=Ω(f(n))

(3)对称性
f ( n ) = Θ ( g ( n ) ) ⇔ g ( n ) = Θ ( f ( n ) ) f(n)=\Theta(g(n)) \Leftrightarrow g(n)=\Theta(f(n)) f(n)=Θ(g(n))g(n)=Θ(f(n))

(4)反对称性
f ( n ) = O ( g ( n ) ) ⇔ g ( n ) = Ω ( f ( n ) ) f ( n ) = o ( g ( n ) ) ⇔ g ( n ) = ω ( f ( n ) ) \begin{array}{l} f(n)=O(g(n)) \Leftrightarrow g(n)=\Omega(f(n)) \\ f(n)=o(g(n)) \Leftrightarrow g(n)=\omega(f(n)) \end{array} f(n)=O(g(n))g(n)=Ω(f(n))f(n)=o(g(n))g(n)=ω(f(n))


三、标准符号和通用函数

3.1 Flour和Ceiling

(1)定义

⌊ x ⌋ \lfloor x\rfloor x表示小于等于x的最大整数, ⌈ x ⌉ \lceil x \rceil x表示大于等于x的最小整数。

(2)定理

x − 1 < ⌊ x ⌋ ≤ x ≤ ⌈ x ⌉ < x + 1 x-1 <\left \lfloor x \right \rfloor \leq x \leq \left \lceil x \right \rceil <x+1 x1<xxx<x+1

⌊ n 2 ⌋ + ⌈ n 2 ⌉ = n , ∀ n ∈ Z \left \lfloor \frac{n}{2} \right \rfloor + \left \lceil \frac{n}{2} \right \rceil =n,\forall n \in Z 2n+2n=n,nZ

⌈ ⌈ n a ⌉ b ⌉ = ⌈ n a b ⌉ ⌊ ⌊ n a ⌋ b ⌋ = ⌊ n a b ⌋ , ∀ a , b , n ∈ Z , a ≠ 0 , b ≠ 0 \begin{matrix}\left \lceil \frac{ \left \lceil \frac{n}{a} \right \rceil}{b} \right \rceil = \left \lceil \frac{n}{ab} \right \rceil \\\left \lfloor \frac{\left \lfloor \frac{n}{a} \right \rfloor}{b} \right \rfloor=\left \lfloor \frac{n}{ab} \right \rfloor \end{matrix} ,\forall a,b,n \in Z, a\ne 0,b \ne 0 ban=abnban=abn,a,b,nZ,a=0,b=0


3.2 线性和

给出两个定理:

∑ k = 1 n ( c a k + b k ) = c ∑ k = 1 n a k + ∑ k = 1 n b k \sum_{k=1}^{n}(ca_k+b_k) = c\sum_{k=1}^{n} a_k + \sum_{k=1}^{n} b_k k=1n(cak+bk)=ck=1nak+k=1nbk

∑ k = 1 n θ ( f ( k ) ) = θ ( ∑ k = 1 n f ( k ) ) \sum_{k=1}^{n}\theta (f(k))= \theta (\sum_{k=1}^{n}f(k)) k=1nθ(f(k))=θ(k=1nf(k))

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友人帐_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值