1
令
c
1
=
1
2
,
c
2
=
1
c_1=\frac{1}{2},c_2=1
c1=21,c2=1,因为
f
(
n
)
,
g
(
n
)
f(n),g(n)
f(n),g(n) 均渐近非负,显然有
c
1
(
f
(
n
)
+
g
(
n
)
)
≤
m
a
x
(
f
(
n
)
,
g
(
n
)
)
≤
c
2
(
f
(
n
)
+
g
(
n
)
)
c_1(f(n)+g(n))\leq max(f(n),g(n))\leq c_2(f(n)+g(n))
c1(f(n)+g(n))≤max(f(n),g(n))≤c2(f(n)+g(n))
根据定义,
m
a
x
(
f
(
n
)
,
g
(
n
)
)
=
Θ
(
f
(
n
)
+
g
(
n
)
)
max(f(n),g(n))=\Theta(f(n)+g(n))
max(f(n),g(n))=Θ(f(n)+g(n)).
2
( n + a ) b = n b + ( b 1 ) n b − 1 a 1 + ( b 2 ) n b − 2 a 2 + ⋯ + a b = Θ ( n b ) \begin{aligned} (n+a)^b&=n^b+\binom{b}{1}n^{b-1}a^1+\binom{b}{2}n^{b-2}a^2+\cdots+a^b \\ &=\Theta(n^b) \end{aligned} (n+a)b=nb+(1b)nb−1a1+(2b)nb−2a2+⋯+ab=Θ(nb)
3
符号 O ( n 2 ) O(n^2) O(n2) 是符合这样条件的函数 f ( n ) f(n) f(n) 的集合:存在常数 c c c 和 n 0 n_0 n0 使得对所有的 n ≥ n 0 n\geq n_0 n≥n0,有 0 ≤ f ( n ) ≤ c n 2 0\leq f(n)\leq cn^2 0≤f(n)≤cn2。而如果说一个运行时间关于输入规模的函数 T ( n ) T(n) T(n) 属于 O ( n 2 ) O(n^2) O(n2),即是说函数 n 2 n^2 n2 是 T ( n ) T(n) T(n) 的渐近上界。所以“运行时间至少是渐近上界”的说法没有意义。
4
2 n + 1 = O ( 2 n ) 2^{n+1}=O(2^n) 2n+1=O(2n),可以取 c = 2 , n 0 = 1 c=2,n_0=1 c=2,n0=1;
2 2 n ≠ O ( 2 n ) 2^{2n}\neq O(2^n) 22n=O(2n),因为对于 c ⋅ 2 n c\cdot2^n c⋅2n,不论 c c c 的值有多大,总能找到 n 0 > lg c n_0>\lg c n0>lgc,使得 2 2 n 0 > c ⋅ 2 n 0 2^{2n_0}>c\cdot 2^{n_0} 22n0>c⋅2n0.
5 ~ 8
参考 CLRS Solutions。