




文档简介
1、Selected Solutions for Chapter 2: Getting Started Solution to Exercise 2.2-2 SELECTION-SORT.A/ n D A:length for j D 1 to n ? 1 smallest D j for i D j C 1 to n if Ai Amid low D mid C 1 else high D mid ? 1 returnNIL RECURSIVE-BINARY-SEARCH.A;low;high/ if low high returnNIL mid D b.low C high/=2c if =A
2、mid return mid elseif Amid return RECURSIVE-BINARY-SEARCH.A;mid C 1;high/ else return RECURSIVE-BINARY-SEARCH.A;low;mid ? 1/ Both procedures terminate the search unsuccessfully when the range is empty (i.e., low high) and terminate it successfully if the value has been found. Based on the comparison
3、 of to the middle element in the searched range, the search continues with the range halved. The recurrence for these procedures is therefore T.n/ D T.n=2/ C .1/, whose solution is T.n/ D .lgn/. Solution to Problem 2-4 a. The inversions are .1;5/;.2;5/;.3;4/;.3;5/;.4;5/. (Rememberthat inversions are
4、 specifi ed by indices rather than by the values in the array.) b. The array with elements from f1;2;:;ng with the most inversions is hn;n ? 1;n ? 2;:;2;1i. For all 1 i j n, there is an inversion .i;j/. The number of such inversions is ?n 2 D n.n ? 1/=2. c. Suppose that the array A starts out with a
5、n inversion .k;j/. Then k Aj. At the time that the outer for loop of lines 18 sets key D Aj, the value that started in Ak is still somewhere to the left of Aj. That is, its in Ai, where 1 i y. Consider an inversion .i;j/, and let x D Ai and y D Aj, so that i y. We claim that if we were to run merge
6、sort, there would be exactly one merge- inversion involving x and y. To see why, observe that the only way in which array elements change their positions is within the MERGEprocedure. More- over, since MERGEkeeps elements within L in the same relative order to each other, and correspondingly for R,
7、the only way in which two elements can change their ordering relative to each other is for the greater one to appear in L and the lesser one to appear in R. Thus, there is at least one merge-inversion involving x and y. To see that there is exactly one such merge-inversion, ob- serve that after any
8、call of MERGEthat involves both x and y, they are in the same sorted subarray and will therefore both appear in L or both appear in R in any given call thereafter. Thus, we have proven the claim. We have shown that every inversion implies one merge-inversion. In fact, the correspondence between inve
9、rsions and merge-inversions is one-to-one. Sup- pose we have a merge-inversion involving values x and y, where x originally was Ai and y was originally Aj. Since we have a merge-inversion, x y. And since x is in L and y is in R, x must be within a subarray preceding the subarray containing y. Theref
10、ore x started out in a position i preceding ys original position j, and so .i;j/ is an inversion. Having shown a one-to-one correspondence between inversions and merge- inversions, it suffi ces for us to count merge-inversions. Consider a merge-inversion involving y in R. Let be the smallest value i
11、n L that is greater than y. At some point during the merging process, and y will be the “exposed” values in L and R, i.e., we will have D Li and y D Rj in line 13 of MERGE. At that time, there will be merge-inversions involving y and Li;Li C 1;Li C2;:;Ln1, and these n1? i C1 merge-inversions will be
12、 the only ones involving y. Therefore, we need to detect the fi rst time that and y become exposed during the MERGEprocedure and add the value of n1? i C 1 at that time to our total count of merge-inversions. The following pseudocode, modeled on merge sort, works as we have just de- scribed. It also
13、 sorts the array A. COUNT-INVERSIONS.A;p;r/ inersions D 0 if p r q D b.p C r/=2c inersions D inersions C COUNT-INVERSIONS.A;p;q/ inersions D inersions C COUNT-INVERSIONS.A;q C 1;r/ inersions D inersions C MERGE-INVERSIONS.A;p;q;r/ return inersions 2-4Selected Solutions for Chapter 2: Getting Started
14、 MERGE-INVERSIONS.A;p;q;r/ n1D q ? p C 1 n2D r ? q let L1:n1C 1 and R1:n2C 1 be new arrays for i D 1 to n1 Li D Ap C i ? 1 for j D 1 to n2 Rj D Aq C j Ln1C 1 D 1 Rn2C 1 D 1 i D 1 j D 1 inersions D 0 counted DFALSE for k D p to r if counted=FALSEand Rj 0 such that 0 c1nb .n C a/b c2nbfor all n n0. No
15、te that n C an C jaj 2nwhen jaj n , and n C an ? jaj 1 2 nwhen jaj 1 2n . Thus, when n 2jaj, 0 1 2 n n C a 2n : Since b 0, the inequality still holds when all parts are raised to the power b: 0 1 2n b .n C a/b .2n/b; 0 1 2 b nb .n C a/b 2bnb: Thus, c1D .1=2/b, c2D 2b, and n0 D 2jaj satisfy the defi
16、nition. Solution to Exercise 3.1-3 Let the running time be T.n/. T.n/ O.n2/ means that T.n/ f.n/ for some function f.n/ in the set O.n2/. This statement holds for any running time T.n/, since the function g.n/ D 0 for all n is in O.n2/, and running times are always nonnegative. Thus, the statement t
17、ells us nothing about the running time. 3-2Selected Solutions for Chapter 3: Growth of Functions Solution to Exercise 3.1-4 2nC1D O.2n/, but 22n O.2n/. To show that 2nC1D O.2n /, we must fi nd constants c;n0 0 such that 0 2nC1 c 2nfor all n n0: Since 2nC1D 2 2n for all n, we can satisfy the defi nit
18、ion with c D 2 and n0D 1. To show that 22n6D O.2n/, assume there exist constants c;n0 0 such that 0 22n c 2nfor all n n0: Then 22nD 2n 2n c 2n) 2n c. But no constant is greater than all 2n, and so the assumption leads to a contradiction. Solution to Exercise 3.2-4 dlgne is not polynomially bounded,
19、but dlglgne is. Proving that a function f.n/ is polynomially bounded is equivalent to proving that lg.f.n/ D O.lgn/ for the following reasons. If f is polynomially bounded, then there exist constants c, k, n0such that for all n n0, f.n/ cnk. Hence, lg.f.n/ kc lgn, which, since c and k are constants,
20、 means that lg.f.n/ D O.lgn/. Similarly, if lg.f.n/ D O.lgn/, then f is polynomially bounded. In the following proofs, we will make use of the following two facts: 1. lg.n/ D .nlgn/ (by equation (3.19). 2. dlgne D .lgn/, because dlgne lgn dlgne 0, we have lgbn D o.na/. Substitute lgn for n, 2 for b,
21、 and 1 for a, giving lg2.lgn/ D o.lgn/. Therefore, lg.dlglgne/ D O.lgn/, and so dlglgne is polynomially bounded. Selected Solutions for Chapter 4: Divide-and-Conquer Solution to Exercise 4.2-4 If you can multiply 3 3 matrices using k multiplications, then you can multiply n n matrices by recursively
22、 multiplying n=3 n=3 matrices, in time T.n/ D kT.n=3/ C .n2/. Using the master method to solve this recurrence, consider the ratio of nlog3 k and n2: If log3k D 2, case 2 applies and T.n/ D .n2lgn/. In this case, k D 9 and T.n/ D o.nlg7/. If log3k 2, case 3 applies and T.n/ D .n2/. In this case, k 2
23、, case 1 applies and T.n/ D .nlog3 k/. In this case, k 9. T.n/ D o.nlg7/ when log3k lg7, i.e., when k 3lg7 21:85. The largest such integer k is 21. Thus, k D 21 and the running time is .nlog3 k/ D .nlog321/ D O.n2:80/ (since log321 2:77). Solution to Exercise 4.4-6 The shortest path from the root to
24、 a leaf in the recursion tree is n ! .1=3/n ! .1=3/2n ! ! 1. Since .1=3/kn D 1 when k D log3n, the height of the part of the tree in which every node has two children is log3n. Since the values at each of these levels of the tree add up to cn, the solution to the recurrence is at least cnlog3n D .nl
25、gn/. Solution to Exercise 4.4-9 T.n/ D T.n/ C T.1 ? /n/ C cn We saw the solution to the recurrence T.n/ D T.n=3/CT.2n=3/Ccn in the text. This recurrence can be similarly solved. 4-2Selected Solutions for Chapter 4: Divide-and-Conquer Without loss ofgenerality, let 1?, so that 0 1? 1=2 and 1=2 0. T.n
26、/DT.n/ C T.1 ? /n/ C cn dnlg.n/ C d.1 ? /nlg.1 ? /n/ C cn Ddnlg C dnlgn C d.1 ? /nlg.1 ? / C d.1 ? /nlgn C cn Ddnlgn C dn. lg C .1 ? /lg.1 ? / C cn dnlgn ; if dn. lg C .1 ? /lg.1 ? / C cn 0. This condition is equivalent to d.lg C .1 ? /lg.1 ? / ?c : Since 1=2 1 and 0 1? 1=2, we have that lg 0 and lg
27、.1?/ 0. Thus, lg C .1 ? /lg.1 ? / 0. We can use the same proof as for the upper bound, substituting for , and we get the requirement that 0 d c ?lg ? .1 ? /lg.1 ? / : Therefore, T.n/ D .nlgn/. Selected Solutions for Chapter 5: Probabilistic Analysis and Randomized Algorithms Solution to Exercise 5.2
28、-1 Since HIRE-ASSISTANTalways hires candidate 1, it hires exactly once if and only if no candidates other than candidate 1 are hired. This event occurs when candi- date 1 is the best candidate of the n, which occurs with probability 1=n. HIRE-ASSISTANThires n times if each candidate is better than a
29、ll those who were interviewed (and hired) before. This event occurs precisely when the list of ranks given to the algorithm is h1;2;:;ni, which occurs with probability 1=n. Solution to Exercise 5.2-4 Another way to think of the hat-check problem is that we want to determine the expected number of fi
30、 xed points in a random permutation. (A fi xed point of a permutation is a value i for which .i/ D i.) We could enumerate all n per- mutations, count the total number of fi xed points, and divide by n to determine the average number of fi xed points per permutation. This would be a painstak- ing pro
31、cess, and the answer would turn out to be 1. We can use indicator random variables, however, to arrive at the same answer much more easily. Defi ne a random variable X that equals the number of customers that get back their own hat, so that we want to compute EX. For i D 1;2;:;n, defi ne the indicat
32、or random variable XiD Ifcustomer i gets back his own hatg : Then X D X1C X2C C Xn. Since the ordering of hats is random, each customer has a probability of 1=n of getting back his or her own hat. In other words, PrfXiD 1g D 1=n, which, by Lemma 5.1, implies that EXi D 1=n. 5-2Selected Solutions for
33、 Chapter 5: Probabilistic Analysis and Randomized Algorithms Thus, EXDE n X iD1 Xi # D n X iD1 EXi(linearity of expectation) D n X iD1 1=n D1 ; and so we expect that exactly 1 customer gets back his own hat. Note that this is a situation in which the indicator random variables are not inde- pendent.
34、 For example, if n D 2 and X1D 1, then X2must also equal 1. Con- versely, if n D 2 and X1D 0, then X2must also equal 0. Despite the dependence, PrfXiD 1g D 1=n for all i, and linearity of expectation holds. Thus, we can use the technique of indicator random variables even in the presence of dependen
35、ce. Solution to Exercise 5.2-5 Let Xijbe an indicator random variable for the event where the pair Ai;Aj for i Aj. More precisely, we defi ne XijD IfAi Ajg for 1 i j n. We have PrfXijD 1g D 1=2, because given two distinct random numbers, the probability that the fi rst is bigger than the second is 1
36、=2. By Lemma 5.1, EXij D 1=2. Let X be the the random variable denoting the total number of inverted pairs in the array, so that X D n?1 X iD1 n X jDiC1 Xij: We want the expected number of inverted pairs, so we take the expectation of both sides of the above equation to obtain EX D E n?1 X iD1 n X j
37、DiC1 Xij # : We use linearity of expectation to get EXDE n?1 X iD1 n X jDiC1 Xij # D n?1 X iD1 n X jDiC1 EXij D n?1 X iD1 n X jDiC1 1=2 Selected Solutions for Chapter 5: Probabilistic Analysis and Randomized Algorithms5-3 D n 2 ! 1 2 D n.n ? 1/ 2 1 2 D n.n ? 1/ 4 : Thus the expected number of invert
38、ed pairs is n.n ? 1/=4. Solution to Exercise 5.3-2 Although PERMUTE-WITHOUT-IDENTITYwill not produce the identity permuta- tion, there are other permutations that it fails to produce. For example, consider its operation when n D 3, when it should be able to produce the n ? 1 D 5 non- identity permut
39、ations. The for loop iterates for i D 1 and i D 2. When i D 1, the call to RANDOMreturns one of two possible values (either 2 or 3), and when i D 2, thecall to RANDOMreturns justonevalue (3). Thus, PERMUTE-WITHOUT- IDENTITYcan produce only 2 1 D 2 possible permutations, rather than the 5 that are re
40、quired. Solution to Exercise 5.3-4 PERMUTE-BY-CYCLICchooses offset as a random integer in the range 1 offsetn, and then it performs a cyclic rotation of the array.That is, B.i C offset ? 1/ mod n/ C 1 D Ai for i D 1;2;:;n. (The subtraction and addition of 1 in the index calculation is due to the 1-o
41、rigin indexing. If we had used 0-origin indexing instead, the index calculation would have simplied to B.i C offset/ mod n D Ai for i D 0;1;:;n ? 1.) Thus, once offset is determined, so is the entire permutation. Since each value of offset occurs with probability 1=n, each element Ai has a probabili
42、ty of ending up in position Bj with probability 1=n. This procedure does not produce a uniform random permutation, however, since it can produce only n different permutations. Thus, n permutations occur with probability 1=n, and the remaining n ? n permutations occur with probability 0. Selected Sol
43、utions for Chapter 6: Heapsort Solution to Exercise 6.1-1 Since a heap is an almost-complete binary tree (complete at all levels except pos- sibly the lowest), it has at most 2hC1? 1 elements (if it is complete) and at least 2h?1C1 D 2helements (if the lowest level has just 1 element and the other l
44、evels are complete). Solution to Exercise 6.1-2 Given an n-element heap of height h, we know from Exercise 6.1-1 that 2h n 2hC1? 1 2hC1: Thus, h lgn h C 1. Since h is an integer, h D blgnc (by defi nition of b c). Solution to Exercise 6.2-6 If you put a value at the root that is less than every valu
45、e in the left and right subtrees, then MAX-HEAPIFYwill be called recursively until a leaf is reached. To make the recursive calls traverse the longest path to a leaf, choose values that make MAX-HEAPIFYalways recurse on the left child. It follows the left branch when the left child is greater than o
46、r equal to the right child, so putting 0 at the root and 1 at all the other nodes, for example, will accomplish that. With such values, MAX-HEAPIFYwill be called h times (where h is the heap height, which is the number of edges in the longest path from the root to a leaf), so its running time will b
47、e .h/ (since each call does .1/ work), which is .lgn/. Since we have a case in which MAX-HEAPIFYs running time is .lgn/, its worst-case running time is .lgn/. 6-2Selected Solutions for Chapter 6: Heapsort Solution to Exercise 6.4-1 (b)(c) (d)(e)(f) (g)(h)(i) 24578 13 17 20 25 20 4 25 781317 25 2 45
48、781317 2520 5 42 171387 2025 7 45 171382 2025 13 58 27417 2520 8 75 171342 2025 17 135 2478 2520 20 1317 2478 255 A i i iii i ii (a) 25 1320 21778 45 Selected Solutions for Chapter 6: Heapsort6-3 Solution to Exercise 6.5-2 22 22 8181 8 110 i 8 1- 15 139 51287 406 (a) 15 139 51287 406 (b) 15 139 0 12
49、107 4 5 6 (c) i 15 5 10 0 1297 4 13 6 (d) i Solution to Problem 6-1 a. The procedures BUILD-MAX-HEAPand BUILD-MAX-HEAP0do not always create the same heap when run on the same input array. Consider the following counterexample. Input array A: 123A BUILD-MAX-HEAP.A/: 1 32 3 12 321A BUILD-MAX-HEAP0.A/:
50、 1 - 2 -1 3 21 312A b. An upper bound of O.nlgn/ time follows immediately from there being n ? 1 calls to MAX-HEAP-INSERT, each taking O.lgn/ time. For a lower bound 6-4Selected Solutions for Chapter 6: Heapsort of .nlgn/, consider the case in which the input array is given in strictly in- creasing
51、order. Each call to MAX-HEAP-INSERTcauses HEAP-INCREASE- KEYto go all the way up to the root. Since the depth of node i is blgic, the total time is n X iD1 .blgic/ n X iDdn=2e .blgdn=2ec/ n X iDdn=2e .blg.n=2/c/ D n X iDdn=2e .blgn ? 1c/ n=2 .lgn/ D.nlgn/ : In the worst case, therefore, BUILD-MAX-HE
52、AP0requires .nlgn/ time to build an n-element heap. Selected Solutions for Chapter 7: Quicksort Solution to Exercise 7.2-3 PARTITIONdoes a “worst-case partitioning” when the elements are in decreasing order. It reduces the size of the subarray under consideration by only 1 at each step, which weve s
53、een has running time .n2/. In particular, PARTITION, given a subarray Ap :r of distinct elements in de- creasing order, produces an empty partition in Ap :q ? 1, puts the pivot (orig- inally in Ar) into Ap, and produces a partition Ap C 1:r with only one fewer element than Ap :r. The recurrence for
54、QUICKSORTbecomes T.n/ D T.n ? 1/ C .n/, which has the solution T.n/ D .n2/. Solution to Exercise 7.2-5 The minimum depth follows a path that always takes the smaller part of the parti- tioni.e., that multiplies the number of elements by . One iteration reduces the number of elements from n to n, and
55、 i iterations reduces the number of elements to in. At a leaf, there is just one remaining element, and so at a minimum-depth leaf of depth m, we have mn D 1. Thus, mD 1=n. Taking logs, we get mlg D ?lgn, or m D ?lgn=lg. Similarly, maximum depth corresponds to always taking the larger part of the pa
56、r- tition, i.e., keeping a fraction 1 ? of the elements each time. The maximum depth M is reached when there is one element left, that is, when .1 ? /Mn D 1. Thus, M D ?lgn=lg.1 ? /. All these equations are approximate because we are ignoring fl oors and ceilings. Selected Solutions for Chapter 8: S
57、orting in Linear Time Solution to Exercise 8.1-3 If the sort runs in linear time for m input permutations, then the height h of the portion of the decision tree consisting of the m corresponding leaves and their ancestors is linear. Use the same argument as in the proof of Theorem 8.1 to show that t
58、his is impos- sible for m D n=2, n=n, or n=2n. We have 2h m, which gives us h lgm. For all the possible ms given here, lgm D .nlgn/, hence h D .nlgn/. In particular, lg n 2 Dlgn ? 1 nlgn ? nlge ? 1 ; lg n n Dlgn ? lgn nlgn ? nlge ? lgn ; lg n 2n Dlgn ? n nlgn ? nlge ? n : Solution to Exercise 8.2-3
59、The following solution also answers Exercise 8.2-2. Notice that the correctness argument in the text does not depend on the order in which A is processed. The algorithm is correct no matter what order is used! But the modifi ed algorithm is not stable. As before, in the fi nal for loop an element equal to one taken from A earlier is placed before the earlier one (i.e., at a lower index position) in the output arrray B. The original algorithm wa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川甘孜州大学生乡村医生专项计划招聘考试真题2024
- 长郡知识竞赛培训课件
- 安防系统售后服务方案及措施
- 2024年省燃气经营企业从业人员考试(压缩天然气场站工)经典试题及答案四
- 专题11 强调句的用法 (学生版)-2025年新高一英语暑假衔接讲练 (人教版)
- 2025年煤矿企业主要负责人安管能力考试模拟题及答案
- 难点详解人教版八年级物理上册第6章质量与密度-密度综合练习试题(含答案及解析)
- 2025年山西省煤矿安全生产管理人员安全生产知识和管理能力考试全真模拟试题及答案
- 2025年道路运输企业主要负责人和安全生产管理人员考试(主要负责人)考前模拟试题及答案
- 2025年煤矿企业主要负责人安全生产知识和管理能力考试练习题及答案
- 2024年太原武宿机场航空产业集团招聘笔试冲刺题(带答案解析)
- 现代礼仪与沟通(大学生礼仪沟通课程)全套教学课件
- 严重精神障碍患者家属护理教育
- 坚持立足中国又面向世界讲解
- 《昆虫的美食》课件
- 制程工序能力分析报告
- TRIZ试题库资料整理
- 双室平衡容器原理
- 焊接热源及其热作用
- 等腰三角形的性质市公开课金奖市赛课一等奖课件
- 生产车间行为规范
评论
0/150
提交评论