算法导论作业1

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ϵNNYYN
n k n^k nk c n c^n cnNNYYN
n \sqrt n n n sin ⁡ n n^{\sin n} nsinnNNNNN
2 n 2^n 2n 2 n / 2 2^{n/2} 2n/2YYNNN
n lg ⁡ c n^{\lg c} nlgc c lg ⁡ n c^{\lg n} clgnYNYNY
lg ⁡ ( n ! ) \lg(n!) lg(n!) lg ⁡ ( n n ) \lg(n^n) lg(nn)YNYNY

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)nlg(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} 1lgn1lg(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 nlimlnnnlg(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=0log2n14i(2in)2lg(2in)+Θ(n)=cn2lgnlog2nlg2cn2i=0log2n1i+Θ(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)+n2lgn4c(n/2)2lg2(n/2)+n2lg=cn2lg(n/2)lgncn2lg(n/2)lg2+n2lgn=cn2lg2ncn2lgnlg2cn2lg(n/2)lg2+n2lgn=cn2lg2n+(1clg2)n2lgncn2lg(n/2)lg2   (c1/lg2)cn2lg2ncn2lg(n/2)lg2cn2lg2n

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/(lgnilg3)。又由于深度为 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=0log3n1lgnilg3cn+Θ(n)=cni=0log3n1lgn/lg3i1/lg3+Θ(n)=lg3cni=0log3n1log3ni1+Θ(n)=lg3cn(log3n1+log3n11++1)+Θ(n)=lg3cni=1log3ni1+Θ(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 c2nlog3log3nT(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+lgnnc1nlog3log3n成立。将不等式做一下变换,等价于
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(log3log3nlog3log33n)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) η(log3n1,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) log3log3nlog3log33n=log3n(log3n1)f(log3n)f(log3n1)=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(log3log3nlog3log33n)lgn1c1(log3n)ln31=c1(log3n)ln3lgn=ln3c1lg3log3nlog3n=ln3c1lg3
显然,只要取 c 1 ≥ l n 3 l g 3 c_1\ge\frac{ln3}{lg3} c1lg3ln3,不等式成立,此时 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} c2lg3ln3,就能使不等式 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/32)+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)+n2cn+4cn+8cn+n=(78c+1)n
c ≥ 8 c\ge8 c8时,
T ( n ) ≤ ( 7 8 c + 1 ) n ≤ c n T(n) \le(\frac{7}8c+1)n\le cn T(n)(87c+1)ncn
同理证明下界,
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(n1)+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=1ni1

研究调和级数的前n项和为:
H n = ∑ i = 1 n 1 i H_n = \sum_{i=1}^n{\frac{1}{i}} Hn=i=1ni1
定义如下函数:
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<xi+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  x1

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)dxHn0nh(x)dx

ln ⁡ ( n + 1 ) ≤ H n ≤ 1 + ln ⁡ ( n ) \ln(n+1) \le H_n \le 1+\ln(n) ln(n+1)Hn1+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(n1)+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=1nlgi

研究对数数列的前 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<xi+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)  x1

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)dxAn0na(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)nAn(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(n2)+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)=lnxxk=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=1nlgi1lgnn
因此
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)=n T(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)=nn T(n )+1=n T(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)n cn lglgn +n=cnlglgn +n=cnlglgncnlg2+n=cnlglgn+(1clg2)ncnlglgn
只要取 c ≥ 1 lg ⁡ 2 c\ge\frac{1}{\lg 2} clg21,不等式成立

同理可证下界

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:

对数积分:

百度百科-对数积分

维基百科-对数积分

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值