算法设计与分析-课后习题集答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
3. 最大公约数为1。快1414倍。
程序1-2的while 循环体做了10次,程序1-3的while 循环体做了14141次(14142-2循环)
8.(1)画线语句的执行次数为
log n ⎡⎤⎢⎥。(log )n O 。
(2)画线语句的执行次数为
111
(1)(21)16
j
n
i
i j k n n n ===++=
∑∑∑。3
()n O 。
(3)画线语句的执行次数为
。O 。
(4)当n 为奇数时画线语句的执行次数为
(1)(1)
4n n +-, 当n 为偶数时画线语句的执行次数为 (2)4
n n +。2
()n O 。
10.(1) 当 1n ≥ 时,22
5825n n n -+≤,所以,可选 5c =,01n =。对于0n n ≥,
22()5825f n n n n =-+≤,所以,22582()-+=O n n n 。
(2) 当 8n ≥ 时,2222
582524n n n n n -+≥-+≥,所以,可选 4c =,08n =。对于0n n ≥,
22()5824f n n n n =-+≥,所以,22582()-+=Ωn n n 。
(3) 由(1)、(2)可知,取14c =,25c =,08n =,当0n n ≥时,有222
12582c n n n c n ≤-+≤,所
以22
582()-+=Θn n n 。
11. (1) 当3n ≥时,3
log log n n n <<,所以()20log 21f n n n n =+<,3
()log 2g n n n n =+>。可选
21
2
c =
,03n =。对于0n n ≥,()()f n cg n ≤,即()(())f n g n =O 。 (2) 当 4n ≥ 时,2
log log n n n <<,所以 2
2
()/log f n n n n =<,2
2
()log g n n n n =≥。可选 1c =,
04n =。对于 0n n ≥,2()()f n n cg n <≤,即 ()(())f n g n =O 。
(3)因为 log log(log )()(log )
n
n f n n n ==,()/log log 2n g n n n n ==。当 4n ≥ 时,log(log )
()n f n n
n =≥,()log 2n g n n n =<。所以,可选 1c =,04n =,对于0n n ≥,()()f n cg n ≥,即 ()(())f n g n =Ω。
2-17. 证明:设
2i n =,则 log i n =。
()22log 2
n T n T n n ⎛⎫⎢⎥=+ ⎪⎢⎥⎣⎦⎝⎭
2222log 2log 222n n
n T n n ⎡⎤⎛⎫⎢⎥⎛⎫=+⨯⨯+⎢⎥ ⎪ ⎪⎢⎥⎣⎦⎝⎭⎝⎭
⎣⎦
()2222log log22log 2n T n n n n ⎛⎫
⎢⎥=+-+ ⎪
⎢
⎥⎣⎦⎝⎭
22222log 22n T n n n ⎛⎫
⎢⎥=+⨯- ⎪
⎢
⎥⎣⎦⎝⎭
2
322222log 22log 2222n n n T n n n ⎡⎤
⎛⎫⎢⎥=+⨯⨯+⨯-⎢⎥ ⎪⎢⎥⎣⎦⎝⎭
⎣⎦
()3322log log422log 22n T n n n n n ⎛⎫
⎢⎥=+-+⨯- ⎪
⎢
⎥⎣⎦⎝⎭
33232log 242n T n n n n ⎛⎫
⎢⎥=+⨯-- ⎪⎢⎥⎣⎦⎝⎭
=
()22log 24212k k n T kn n n n n k ⎛⎫
⎢⎥=+----- ⎪
⎢
⎥⎣⎦⎝⎭
()()()1
2221log 2422i T i n n n n n i -=+----
--
()()()1
242log log 121i n n n i i n -=⨯+---- ()
2222log 2log log 3log 2n n n n n n n n =+---+ 2
log log n n n n =+
当2n ≥ 时,()22log T n n n ≤。所以,()()2log T n n n =O 。
5-4. SolutionType DandC1(int left,int right) { while(!Small(left,right)&&left
5-7. template
int SortableList
7.m=left+(right-left+1)/3
不能用:m=(left+right)/3 ,两者不同。
受对半搜索的影响:m=(left+right)/2和m=left+(right-left+1)/2是一样的 9.
证明:因为该算法在成功搜索的情况下,关键字之间的比较次数至少为log n ⎢⎥⎣⎦,至多为log 1n +⎢⎥⎣⎦。在不成功搜索的情况下,关键字之间的比较次数至少为log 1n +⎢⎥⎣⎦,至多为log 2n +⎢⎥⎣⎦。所以,算法的最