3.2
A A A是 B B B的 O O O —— B = O ( A ) B=O(A) B=O(A)
A A A | B B B | O O O | o o o | Ω \Omega Ω | ω \omega ω | Θ \Theta Θ |
---|---|---|---|---|---|---|
lg k n \lg^kn lgkn | n ϵ n^{\epsilon} nϵ | N | N | Y | Y | N |
n k n^k nk | c n c^n cn | N | N | Y | Y | N |
n \sqrt n n | n sin n n^{\sin n} nsinn | N | N | N | N | N |
2 n 2^n 2n | 2 n / 2 2^{n/2} 2n/2 | Y | Y | N | N | N |
n lg c n^{\lg c} nlgc | c lg n c^{\lg n} clgn | Y | N | Y | N | Y |
lg ( n ! ) \lg(n!) lg(n!) | lg ( n n ) \lg(n^n) lg(nn) | Y | N | Y | N | Y |
lg
(
n
!
)
\lg(n!)
lg(n!)和
lg
(
n
n
)
\lg(n^n)
lg(nn):
n
lg
(
n
)
−
n
≤
lg
(
n
!
)
≤
(
n
+
1
)
lg
(
n
+
1
)
−
n
n\lg(n)-n\le \lg(n!)\le (n+1)\lg(n+1)-n\\
nlg(n)−n≤lg(n!)≤(n+1)lg(n+1)−n
同除
n
lg
n
n\lg n
nlgn:
1
−
1
lg
n
≤
lg
(
n
!
)
lg
(
n
n
)
≤
(
n
+
1
)
lg
(
n
+
1
)
n
lg
n
−
1
lg
n
1-\frac{1}{\lg n}\le \frac{\lg(n!)}{\lg(n^n)}\le \frac{(n+1)\lg(n+1)}{n\lg n}-\frac{1}{\lg n}
1−lgn1≤lg(nn)lg(n!)≤nlgn(n+1)lg(n+1)−lgn1
lim n → ∞ lg ( n ! ) ln n n = 1 \lim_{n\rarr \infin}\frac{\lg(n!)}{\ln {n^n}}=1 n→∞limlnnnlg(n!)=1
4.5-4
不能
a = 4 , b = 2 , f ( n ) = n 2 lg n ≠ O ( n 2 − ϵ ) ≠ Ω ( n 2 + ϵ ) a=4,\ b=2,\ f(n)=n^2\lg n\neq O(n^{2-\epsilon })\neq \Omega(n^{2+\epsilon}) a=4, b=2, f(n)=n2lgn=O(n2−ϵ)=Ω(n2+ϵ)
方法1
递归树
T
(
n
)
=
c
∑
i
=
0
log
2
n
−
1
4
i
(
n
2
i
)
2
lg
(
n
2
i
)
+
Θ
(
n
)
=
c
n
2
lg
n
⋅
log
2
n
−
lg
2
⋅
c
n
2
∑
i
=
0
log
2
n
−
1
i
+
Θ
(
n
)
=
Θ
(
n
2
lg
2
n
)
\begin{aligned} T(n)&=c\sum_{i=0}^{\log_2n-1}4^i(\frac{n}{2^i})^2\lg (\frac{n}{2^i})+\Theta(n)\\ &=cn^2\lg n·\log_2n-\lg 2·cn^2\sum_{i=0}^{\log_2n-1}i+\Theta(n)\\ &=\Theta(n^2\lg^2 n) \end{aligned}
T(n)=ci=0∑log2n−14i(2in)2lg(2in)+Θ(n)=cn2lgn⋅log2n−lg2⋅cn2i=0∑log2n−1i+Θ(n)=Θ(n2lg2n)
方法2
猜测,
T
(
n
)
≤
c
n
2
lg
2
n
T(n)\le cn^2\lg^2n
T(n)≤cn2lg2n
证明,
T
(
n
)
=
4
T
(
n
/
2
)
+
n
2
lg
n
≤
4
c
(
n
/
2
)
2
lg
2
(
n
/
2
)
+
n
2
lg
=
c
n
2
lg
(
n
/
2
)
lg
n
−
c
n
2
lg
(
n
/
2
)
lg
2
+
n
2
lg
n
=
c
n
2
lg
2
n
−
c
n
2
lg
n
lg
2
−
c
n
2
lg
(
n
/
2
)
lg
2
+
n
2
lg
n
=
c
n
2
lg
2
n
+
(
1
−
c
lg
2
)
n
2
lg
n
−
c
n
2
lg
(
n
/
2
)
lg
2
(
c
≥
1
/
lg
2
)
≤
c
n
2
lg
2
n
−
c
n
2
lg
(
n
/
2
)
lg
2
≤
c
n
2
lg
2
n
\begin{aligned} T(n)&=4T(n/2)+n^2\lg n\\ &\le4c(n/2)^2\lg^2(n/2)+n^2\lg \\ &=cn^2\lg(n/2)\lg n-cn^2\lg(n/2)\lg 2+n^2\lg n\\ &=cn^2\lg^2n-cn^2\lg n\lg 2-cn^2\lg(n/2)\lg 2+n^2\lg n\\ &=cn^2\lg^2n+(1-c\lg 2)n^2\lg n-cn^2\lg(n/2)\lg2\ \ \ (c\ge1/\lg2)\\ &\le cn^2\lg^2n-cn^2\lg(n/2)\lg 2\\ &\le cn^2\lg^2 n \end{aligned}
T(n)=4T(n/2)+n2lgn≤4c(n/2)2lg2(n/2)+n2lg=cn2lg(n/2)lgn−cn2lg(n/2)lg2+n2lgn=cn2lg2n−cn2lgnlg2−cn2lg(n/2)lg2+n2lgn=cn2lg2n+(1−clg2)n2lgn−cn2lg(n/2)lg2 (c≥1/lg2)≤cn2lg2n−cn2lg(n/2)lg2≤cn2lg2n
4.3
a. T ( n ) = 4 T ( n / 3 ) + n l g n T(n)=4T(n/3)+nlgn T(n)=4T(n/3)+nlgn
a
=
4
,
b
=
3
,
f
(
n
)
=
n
lg
n
,
a = 4, b = 3, f(n) = n\lg n,
a=4,b=3,f(n)=nlgn, 由主定理
T
(
n
)
=
Θ
(
n
log
3
4
)
T(n) = \Theta(n^{\log_34})
T(n)=Θ(nlog34)
b. T ( n ) = 3 T ( n / 3 ) + n / l g n T(n)=3T(n/3)+n/lgn T(n)=3T(n/3)+n/lgn
方法1
深度为 i i i的结点对应规模为 n / 3 i = 1 n/3^i=1 n/3i=1时,即 i = l o g 3 n i=log_3n i=log3n时,字问题规模变为1,对应于叶结点 T ( 1 ) T(1) T(1)。
每层结点数是上一层的3倍,因此深度为 i i i的结点数为 3 i 3^i 3i。并且深度为 i i i的结点对应的字问题规模为 n / 3 i n/3^i n/3i,故深度为 i i i的每个结点的代价为 c ( n / 3 i ) / lg ( n / 3 i ) c(n/3^i)/\lg(n/3^i) c(n/3i)/lg(n/3i)。因此,除叶结点外,深度为i ii的所有结点的代价之和为 3 i ⋅ ( c ( n / 3 i ) / lg ( n / 3 i ) ) = c n / ( lg n − i ⋅ lg 3 ) 3^i·(c(n/3^i)/\lg(n/3^i))=cn/(\lg n-i·\lg 3) 3i⋅(c(n/3i)/lg(n/3i))=cn/(lgn−i⋅lg3)。又由于深度为 i i i的结点数为 3 i 3^i 3i,并且叶结点深度为 log 3 n \log_3n log3n,故叶结点一共有 3 log 3 n = n 3^{\log_3n}=n 3log3n=n个,于是所有叶结点的代价和为 Θ ( n ) \Theta(n) Θ(n)。
每一层代价加起来,得
T
(
n
)
=
∑
i
=
0
log
3
n
−
1
c
n
lg
n
−
i
⋅
lg
3
+
Θ
(
n
)
=
c
n
⋅
∑
i
=
0
log
3
n
−
1
1
/
lg
3
lg
n
/
lg
3
−
i
+
Θ
(
n
)
=
c
n
lg
3
⋅
∑
i
=
0
log
3
n
−
1
1
log
3
n
−
i
+
Θ
(
n
)
=
c
n
lg
3
⋅
(
1
log
3
n
+
1
log
3
n
−
1
+
⋅
⋅
⋅
+
1
)
+
Θ
(
n
)
=
c
n
lg
3
⋅
∑
i
=
1
log
3
n
1
i
+
Θ
(
n
)
=
c
n
lg
3
⋅
(
ln
(
log
3
n
)
+
O
(
1
)
)
+
Θ
(
n
)
=
Θ
(
n
lg
lg
n
)
\begin{aligned} T(n) &= \sum_{i=0}^{\log_3n-1}\frac{cn}{\lg n-i·\lg3}+\Theta(n)\\ &=cn·\sum_{i=0}^{\log_3n-1}\frac{1/\lg3}{\lg n/\lg 3-i}+\Theta(n)\\ &=\frac{cn}{\lg3}·\sum_{i=0}^{\log_3n-1}\frac{1}{\log_3n-i}+\Theta(n)\\ &=\frac{cn}{\lg3}·(\frac{1}{\log_3n}+\frac{1}{\log_3n-1}+···+1)+\Theta(n)\\ &=\frac{cn}{\lg3}·\sum_{i=1}^{\log_3n}\frac{1}{i}+\Theta(n)\\ &=\frac{cn}{\lg3}·(\ln(\log_3n)+O(1))+\Theta(n)\\ &=\Theta(n\lg\lg n) \end{aligned}
T(n)=i=0∑log3n−1lgn−i⋅lg3cn+Θ(n)=cn⋅i=0∑log3n−1lgn/lg3−i1/lg3+Θ(n)=lg3cn⋅i=0∑log3n−1log3n−i1+Θ(n)=lg3cn⋅(log3n1+log3n−11+⋅⋅⋅+1)+Θ(n)=lg3cn⋅i=1∑log3ni1+Θ(n)=lg3cn⋅(ln(log3n)+O(1))+Θ(n)=Θ(nlglgn)
方法2
猜测
T
(
n
)
=
Θ
(
n
log
3
log
3
n
)
T(n) = \Theta(n\log_3\log_3 n)
T(n)=Θ(nlog3log3n)
下面将这个猜测代入原递归式进行验证。我们要证明的是:存在正常数
c
1
c_1
c1和
c
2
c_2
c2,使得
c
2
n
log
3
log
3
n
≤
T
(
n
)
≤
c
1
n
log
3
log
3
n
c_2n\log_3\log_3 n\le T(n)\le c_1n\log_3\log_3 n
c2nlog3log3n≤T(n)≤c1nlog3log3n对足够大的
n
n
n都成立。
(1) 证明存在正常数 c 1 c_1 c1,使得 T ( n ) ≤ c 1 n log 3 log 3 n T(n)\le c_1n\log_3\log_3n T(n)≤c1nlog3log3n
首先假定此上界对所有正数 m < n m<n m<n都成立,特别是对于 m = n 3 m=\frac{n}{3} m=3n,有 T ( n 3 ) ≤ c 1 n 3 log 3 log 3 n 3 T(\frac{n}{3})\le c_1\frac{n}{3}\log_3 \log_3 \frac{n}{3} T(3n)≤c13nlog3log33n
将其代入递归式得到
T
(
n
)
≤
3
(
c
1
n
3
log
3
log
3
n
3
)
+
n
lg
n
=
c
1
n
log
3
log
3
n
3
+
n
lg
n
\begin{aligned} T(n)&≤3(c_1\frac{n}{3}\log_3\log_3\frac{n}{3})+\frac{n}{\lg n }\\ &=c_1n\log_3\log_3{\frac{n}3}+\frac{n}{\lg n}\\ \end{aligned}
T(n)≤3(c13nlog3log33n)+lgnn=c1nlog3log33n+lgnn
现要选取合适的
c
1
c_1
c1,使得不等式
c
1
n
log
3
log
3
n
3
+
n
lg
n
≤
c
1
n
log
3
log
3
n
c_1n\log_3\log_3{\frac{n}3}+\frac{n}{\lg n}\le c_1n\log_3\log_3n
c1nlog3log33n+lgnn≤c1nlog3log3n成立。将不等式做一下变换,等价于
c
1
n
(
log
3
log
3
n
−
log
3
log
3
n
3
)
n
lg
n
≥
1
\frac{c_1n(\log_3\log_3{n}-\log_3\log_3\frac{n}3)}{\frac{n}{\lg n}}\ge1
lgnnc1n(log3log3n−log3log33n)≥1
令
f
(
x
)
=
log
3
x
f(x)=\log_3x
f(x)=log3x
f ′ ( x ) = 1 x ln 3 f'(x)=\frac{1}{x\ln3} f′(x)=xln31
由拉格朗日中值定理,
∃
η
∈
(
log
3
n
−
1
,
log
3
n
)
\exists \eta \in(\log_3n-1, \log_3n)
∃η∈(log3n−1,log3n),
log
3
log
3
n
−
log
3
log
3
n
3
=
f
(
log
3
n
)
−
f
(
log
3
n
−
1
)
log
3
n
−
(
log
3
n
−
1
)
=
f
′
(
η
)
{\log_3\log_3n-\log_3\log_3{\frac{n}{3}}}=\frac{f(\log_3n)-f(\log_3n-1)}{\log_3n-(\log_3n-1)}=f'(\eta)
log3log3n−log3log33n=log3n−(log3n−1)f(log3n)−f(log3n−1)=f′(η)
则,
c
1
n
(
log
3
log
3
n
−
log
3
log
3
n
3
)
n
lg
n
≥
c
1
1
(
log
3
n
)
ln
3
1
lg
n
=
c
1
lg
n
(
log
3
n
)
ln
3
=
c
1
lg
3
ln
3
log
3
n
log
3
n
=
c
1
lg
3
ln
3
\begin{aligned} \frac{c_1n(\log_3\log_3{n}-\log_3\log_3\frac{n}3)}{\frac{n}{\lg n}} &\ge \frac{c_1\frac{1}{(\log_3n)\ln3}}{\frac{1}{\lg n}}\\ &=c_1\frac{\lg n}{(\log_3n)\ln3}\\ &=\frac{c_1 \lg3}{\ln3}\frac{\log_3n}{\log_3n}\\ &=\frac{c_1 \lg 3}{\ln 3} \end{aligned}
lgnnc1n(log3log3n−log3log33n)≥lgn1c1(log3n)ln31=c1(log3n)ln3lgn=ln3c1lg3log3nlog3n=ln3c1lg3
显然,只要取
c
1
≥
l
n
3
l
g
3
c_1\ge\frac{ln3}{lg3}
c1≥lg3ln3,不等式成立,此时
T
(
n
)
≥
c
1
n
log
3
log
3
n
T(n)\ge c_1n\log_3\log_3n
T(n)≥c1nlog3log3n成立
(2) 证明存在正常数 c 2 c_2 c2,使得 T ( n ) ≥ c 2 n log 3 log 3 n T(n)\ge c_2n\log_3\log_3n T(n)≥c2nlog3log3n对足够大的 n n n都成立
证明与上文类似,最终得到只要取 c 2 ≤ l n 3 l g 3 c_2\le\frac{ln3}{lg3} c2≤lg3ln3,就能使不等式 T ( n ) ≥ c 2 n log 3 log 3 n T(n)\ge c_2n\log_3\log_3n T(n)≥c2nlog3log3n成立
c. T ( n ) = 4 T ( n / 2 ) + n 2 n T(n)=4T(n/2)+n^2\sqrt{n} T(n)=4T(n/2)+n2n
根据主定理
T
(
n
)
=
Θ
(
n
2.5
)
T(n) = \Theta(n^{2.5})
T(n)=Θ(n2.5)
d. T ( n ) = 3 T ( n / 3 − 2 ) + n / 2 T(n)=3T(n/3-2)+n/2 T(n)=3T(n/3−2)+n/2
n足够大时,原式转化为
T
(
n
)
=
3
T
(
n
3
)
+
n
2
T(n) = 3T(\frac{n}{3})+\frac{n}{2}
T(n)=3T(3n)+2n
根据主定理
T
(
n
)
=
Θ
(
n
lg
n
)
T(n) = \Theta(n\lg n)
T(n)=Θ(nlgn)
e. T ( n ) = 2 T ( n / 2 ) + n / l g n T(n)=2T(n/2)+n/lgn T(n)=2T(n/2)+n/lgn
与b同理, T ( n ) = Θ ( n lg lg n ) T(n)=\Theta(n\lg \lg n) T(n)=Θ(nlglgn)
f. T ( n ) = T ( n / 2 ) + T ( n / 4 ) + T ( n / 8 ) + n T(n)=T(n/2)+T(n/4)+T(n/8)+n T(n)=T(n/2)+T(n/4)+T(n/8)+n
方法1
T ( n ) = n ( 7 8 + 49 64 + ⋅ ⋅ ⋅ + ( 7 8 ) k ) = n ⋅ ( 7 − ( 7 8 ) n ) = Θ ( n ) \begin{aligned} T(n)& = n(\frac{7}{8}+\frac{49}{64}+···+(\frac{7}{8})^k)\\ &=n·(7-(\frac{7}{8})^n)\\ &=\Theta(n) \end{aligned} T(n)=n(87+6449+⋅⋅⋅+(87)k)=n⋅(7−(87)n)=Θ(n)
方法2
猜测:
T
(
n
)
≤
c
n
T(n)\le cn
T(n)≤cn
证明
T
(
n
)
=
T
(
n
2
)
+
T
(
n
4
)
+
T
(
n
8
)
+
n
≤
c
n
2
+
c
n
4
+
c
n
8
+
n
=
(
8
7
c
+
1
)
n
\begin{aligned} T(n) &= T(\frac{n}{2})+T(\frac{n}{4})+T(\frac{n}{8})+n\\ &\le \frac{cn}2+\frac{cn}4+\frac{cn}8+n\\ &=(\frac{8}7c+1)n \end{aligned}
T(n)=T(2n)+T(4n)+T(8n)+n≤2cn+4cn+8cn+n=(78c+1)n
当
c
≥
8
c\ge8
c≥8时,
T
(
n
)
≤
(
7
8
c
+
1
)
n
≤
c
n
T(n) \le(\frac{7}8c+1)n\le cn
T(n)≤(87c+1)n≤cn
同理证明下界,
T
(
n
)
≥
c
n
T(n)\ge cn
T(n)≥cn
g. T ( n ) = T ( n − 1 ) + 1 / n T(n)=T(n-1)+1/n T(n)=T(n−1)+1/n
T ( n ) = T ( 0 ) + ∑ i = 1 n 1 i T(n)=T(0)+\sum_{i=1}^{n}{\frac{1}{i}} T(n)=T(0)+i=1∑ni1
研究调和级数的前n项和为:
H
n
=
∑
i
=
1
n
1
i
H_n = \sum_{i=1}^n{\frac{1}{i}}
Hn=i=1∑ni1
定义如下函数:
h
(
x
)
=
1
i
+
1
,
i
<
x
≤
i
+
1
h(x)=\frac{1}{i+1},\ \ i<x\le i+1
h(x)=i+11, i<x≤i+1
可以找到
h
(
x
)
h(x)
h(x)的上下界函数
h
‾
=
{
1
0
<
x
<
1
1
x
x
≥
1
\overline{h}= \begin{cases} 1\ \ 0<x<1\\ \frac{1}{x}\ \ x\ge1 \end{cases}
h={1 0<x<1x1 x≥1
h ‾ = 1 1 + x \underline{h} = \frac{1}{1+x} h=1+x1
则,
H
n
=
∫
0
n
h
(
x
)
d
x
H_n=\int_0^n{h(x)}dx
Hn=∫0nh(x)dx
且
∫
0
n
h
‾
(
x
)
d
x
≤
H
n
≤
∫
0
n
h
‾
(
x
)
d
x
\int_0^n{\underline{h}(x)dx} \le H_n \le \int_0^n{\overline{h}(x)dx}
∫0nh(x)dx≤Hn≤∫0nh(x)dx
即
ln
(
n
+
1
)
≤
H
n
≤
1
+
ln
(
n
)
\ln(n+1) \le H_n \le 1+\ln(n)
ln(n+1)≤Hn≤1+ln(n)
因此
T
(
n
)
=
Θ
(
l
g
n
)
T(n) = \Theta(lgn)
T(n)=Θ(lgn)
h. T ( n ) = T ( n − 1 ) + lg n T(n)=T(n-1)+\lg n T(n)=T(n−1)+lgn
T ( n ) = T ( 0 ) + ∑ i = 1 n lg i T(n) = T(0)+\sum_{i=1}^n{\lg i} T(n)=T(0)+i=1∑nlgi
研究对数数列的前 n 项和:
log
(
n
!
)
=
log
(
1
)
+
log
(
2
)
+
⋅
⋅
⋅
+
log
(
n
)
\log(n!) = \log(1)+\log(2)+···+\log(n)
log(n!)=log(1)+log(2)+⋅⋅⋅+log(n)
定义如下函数:
a
(
x
)
=
log
(
i
+
1
)
,
i
<
x
≤
i
+
1
a(x) = \log(i+1),\ \ i<x\le i+1
a(x)=log(i+1), i<x≤i+1
可以找到
a
(
x
)
a(x)
a(x)的上下界为:
a
‾
(
x
)
=
{
0
0
<
x
<
1
log
(
x
)
x
≥
1
\underline{a}(x)= \begin{cases} 0\ \ \ \ \ \ \ \ \ \ 0<x<1\\ \log(x) \ \ x\ge 1 \end{cases}
a(x)={0 0<x<1log(x) x≥1
a ‾ = log ( x + 1 ) \overline{a}=\log(x+1) a=log(x+1)
则,
A
n
=
∫
0
n
a
(
x
)
d
x
A_n=\int_0^n{a(x)dx}
An=∫0na(x)dx
且,
∫
0
n
a
‾
(
x
)
d
x
≤
A
n
≤
∫
0
n
a
‾
(
x
)
d
x
\int_0^n{\underline{a}(x)dx} \le A_n \le \int_0^n{\overline{a}(x)dx}
∫0na(x)dx≤An≤∫0na(x)dx
积分可得,
n
l
o
g
(
n
)
−
n
≤
A
n
≤
(
n
+
1
)
l
o
g
(
n
+
1
)
−
n
nlog(n)-n\le A_n\le (n+1)log(n+1)-n
nlog(n)−n≤An≤(n+1)log(n+1)−n
因此
T
(
n
)
=
Θ
(
n
lg
n
)
T(n) = \Theta(n\lg n)
T(n)=Θ(nlgn)
i. T ( n ) = T ( n − 2 ) + 1 / lg n T(n)=T(n-2)+1/\lg n T(n)=T(n−2)+1/lgn
与前两题同理,研究对数积分
l
i
(
x
)
li(x)
li(x),当
x
→
∞
x\rightarrow\infty
x→∞时,函数有如下渐近表现:
l
i
(
x
)
=
O
(
x
ln
(
x
)
)
li(x) = O(\frac{x}{\ln(x)})
li(x)=O(ln(x)x)
(其完整的渐近展开式为
l
i
(
x
)
=
x
ln
x
∑
k
=
0
∞
k
!
(
ln
x
)
k
li(x) = \frac{x}{\ln x}\sum_{k=0}^\infty\frac{k!}{(\ln x)^k}
li(x)=lnxx∑k=0∞(lnx)kk!)
不难验证:
∑
i
=
1
n
1
lg
i
≥
n
lg
n
\sum_{i=1}^n\frac{1}{\lg i} \ge \frac{n}{\lg n}
i=1∑nlgi1≥lgnn
因此
T
(
n
)
=
Θ
(
n
l
g
n
)
T(n) = \Theta(\frac{n}{lgn})
T(n)=Θ(lgnn)
j. T ( n ) = n T ( n ) + n T(n)=\sqrt{n}T(\sqrt{n})+n T(n)=nT(n)+n
方法1
(参考书本P49)
T
(
n
)
n
=
n
n
T
(
n
)
+
1
=
T
(
n
)
n
+
1
\frac{T(n)}{n}=\frac{\sqrt n}{n} T(\sqrt n)+1= \frac{T(\sqrt n)}{\sqrt n}+1
nT(n)=nnT(n)+1=nT(n)+1
设
Y
(
k
)
=
T
(
n
)
n
Y(k) = \frac{T(n)}{n}
Y(k)=nT(n),得
Y
(
k
)
=
Y
(
k
)
+
1
Y(k)=Y(\sqrt k)+1
Y(k)=Y(k)+1
令
m
=
log
2
k
,
k
=
2
m
m = \log_2 k, k=2^m
m=log2k,k=2m,得
Y
(
2
m
)
=
T
(
2
m
2
)
+
1
Y(2^m)=T(2^{\frac{m}{2}})+1
Y(2m)=T(22m)+1
重命名
S
(
m
)
=
Y
(
2
m
)
S(m)=Y(2^m)
S(m)=Y(2m),得
S
(
m
)
=
S
(
m
2
)
+
1
S(m)=S(\frac{m}{2})+1
S(m)=S(2m)+1
根据主方法 case2,
a
=
1
,
b
=
2
,
f
(
m
)
=
1
n
log
b
a
=
n
log
2
1
=
1
a = 1,\ b=2,\ f(m)=1\\ n^{\log_ba} = n^{\log_21}=1
a=1, b=2, f(m)=1nlogba=nlog21=1
f
(
n
)
f(n)
f(n)在多项式意义上等于
n
log
b
a
n^{\log_ba}
nlogba
因此, T ( n ) = Θ ( lg m ) = Θ ( lg lg k ) = Θ ( n lg lg n ) T(n)=\Theta(\lg m) =\Theta(\lg\lg k)=\Theta(n\lg\lg n) T(n)=Θ(lgm)=Θ(lglgk)=Θ(nlglgn)
方法2
猜测,
T
(
n
)
=
Θ
(
n
lg
lg
n
)
T(n)=\Theta(n\lg \lg n)
T(n)=Θ(nlglgn)
证明,
T
(
n
)
≤
n
c
n
lg
lg
n
+
n
=
c
n
lg
lg
n
+
n
=
c
n
lg
lg
n
−
c
n
lg
2
+
n
=
c
n
lg
lg
n
+
(
1
−
c
lg
2
)
n
≤
c
n
lg
lg
n
\begin{aligned} T(n)&\le \sqrt{n}c\sqrt{n}\lg \lg \sqrt{n}+n\\ &=cn\lg\lg\sqrt{n}+n\\ &=cn\lg\lg n-cn\lg2+n\\ &=cn\lg\lg n+(1-c\lg 2)n\\ &\le cn\lg\lg n \end{aligned}
T(n)≤ncnlglgn+n=cnlglgn+n=cnlglgn−cnlg2+n=cnlglgn+(1−clg2)n≤cnlglgn
只要取
c
≥
1
lg
2
c\ge\frac{1}{\lg 2}
c≥lg21,不等式成立
同理可证下界
4.5
a.
与好芯片数量等同的坏芯片可以对好芯片报告坏,对坏芯片报告好,这样好坏最终无法分辨。
b.
步骤1:
(若n为奇,则从中拿出一个芯片A)随机两两配对测试
步骤2:
仅当互报为好时,任留其中一块,其余情况都扔
【讨论原先为奇数的情况】
(1)当剩余总数是偶数时,把A放回。此时要么好的芯片数和坏的芯片数一样,A是好的芯片;要么好的芯片比坏芯片多偶数个,此时不论A是好是坏,把它加入集合也能保证好的芯片数大于坏的芯片数。
(2)当总数是奇数时,就不放回了,因为好的芯片数必然大于坏的芯片数。
步骤3:
重复执行直到只剩1个
c.
T ( n ) = T ( n / 2 ) + n / 2 T(n)= T(n/2)+n/2 T(n)=T(n/2)+n/2
根据主定理,
T
(
n
)
=
O
(
n
)
T(n) =O(n)
T(n)=O(n)
7.1-1
⟨13,19,9,5,12,8,7,4,21,2,6,11⟩
⟨13,19,9,5,12,8,7,4,21,2,6,11⟩
⟨13,19,9,5,12,8,7,4,21,2,6,11⟩
⟨9,19,13,5,12,8,7,4,21,2,6,11⟩
⟨9,5,13,19,12,8,7,4,21,2,6,11⟩
⟨9,5,13,19,12,8,7,4,21,2,6,11⟩
⟨9,5,8,19,12,13,7,4,21,2,6,11⟩
⟨9,5,8,7,12,13,19,4,21,2,6,11⟩
⟨9,5,8,7,4,13,19,12,21,2,6,11⟩
⟨9,5,8,7,4,13,19,12,21,2,6,11⟩
⟨9,5,8,7,4,2,19,12,21,13,6,11⟩
⟨9,5,8,7,4,2,6,12,21,13,19,11⟩
⟨9,5,8,7,4,2,6,11,21,13,19,12⟩
References:
对数积分: