- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法导论第一次习题课
算法导论第一次习题课 2.1-2 INSERTION-SORT非升序排序 有同学改成从length[A]到2循环,此时A[ j+1…length[A]]是循环不变式 INSERTION-SORT(A) for j←2 to length[A] do key←A[j] //Insert A[j] into the sorted sequence A[1..j-1] i←j-1 while i0 and A[i]key do A[i+1] ← A[i] i←i-1 A[i+1] ← key 2.1-4 两个二进制整数相加 BINARY-ADD(A,B,C) 1 flag← 0 2 for j←1 to n 3 do key←A[j]+B[j]+flag //注意flag要清为0 flag← 0 7 C[j] ← key mod 2 8 if key 1 9 flag←1 10 if flag=1 11 C[n+1] ← 1 A、B各存放了一个二进制n位整数的各位数值,现在通过二进制的加法对这两个数进行计算,结果以二进制形式把各位上的数值存放在数组C中 key存储临时计算结果,flag为进位标志符,按位相加,8、9行不能少 2.2-1 ?(n^3) 2.2-2 Selection排序 1 Select-sort(A,n) 2 for i←1 to n-1 3 min←A[i] 4 index←i 5 for j←i+1 to n 6 if A[j] min 7 index←j 8 min←A[j] 9 if index != i 10 A[index]←A[i] 11 A[i]←min loop invariant: 从A[1]到A[j-1],这j-1个数是排好序的,并且是A中最小的j-1个数。 最好和最差情况都是?(n^2),因为两层循环的复杂度是一样的 许多同学在第7行中直接exchange 另外,许多同学都没有对 loop invariant 进行说明 2.3-2 改写MERGE过程,使之不使用哨兵元素。加一个判断把剩下哪一部分放入数组中 2.3-5二分查找算法 Binary-Search(A,v,l,r) if lr then return NIL mid=(l+r)/2 // l+(r-l)/2 If v=A[mid] then return mid If vA[mid] then return binary-search(A,v,mid+1,r) else return binary-search(A,v,l,mid-1) 当mid+1错写成mid的时候,会使递归一直无法结束 例:取A={3,4},v=9,则l=1,r=2,mid=1 binary-search(A,v,1,2) mid =(l+r)/2=1 因vA[mid],执行binary-search(A,v,1,2) 2.3-7判断出集合S中是否存在有两个其和等于x的元素 算法思想:首先要对n个数进行排序,用快排复杂度为 ,然后再在排序后的数组中查找是否存在两数之和为x。假设排序后数组中元素为非降序列: 1 3 5 7 9 10 13 15 i j x=15 3.1-1证明,可取c1=1/2, c2=1 3.1-5证明充分性的时候,不要忘了取n0=max(n1,n2) 3.2-2基本数学变换,略 3.2-4函数是否有界问题 3.2-7 证明: 用归纳法证明 4.1-2 证明T(n)=2T(n/2)+n的解为 证明:用代换法 4.1-4 证明合并排序算法的“准确”递归式(4.2)的解为 (4.2) 4.1-6:通过改变变量求解递归式 4.2-1:利用递归树来猜测递归式T(n)=3T(n/2)+n的一个好的渐近上界,并利用代换法来证明你的猜测 4.2-2:利用递归树来证明递归式T(n)=T(n/3)+T(2n/3)+cn的解是 其中c是一个常数 4.2-4 :利用递归树来找出递归式T(n)=T(n-a)+T(a)+cn的渐近紧确解,其中a=1且c0是常数 4.3-1 用主方法确定渐近界: T(n)=4T(n/2)+n a=4,b=2,应用规则1)有 b) T(n
您可能关注的文档
最近下载
- 983T-V-02-211面铣削加工工艺方案设计 机械本科毕业论文.doc
- 钢铁智能冶金技术基础知识单选题100道及答案.docx VIP
- 第三单元 向美丽 而居——和谐的环境 课件 2024——2025学年人美版(2024)初中美术七年级下册.pptx VIP
- 第7课《谁是最可爱的人》课件(共24张PPT) 统编版语文七年级下册.pptx VIP
- 【马拉松】赛事服务(投标文件).docx
- 医院网络信息安全突发事件应急处置预案.pdf VIP
- “法律法规”“师德师风”模拟试卷及答案.pdf VIP
- CECA GC1-2015 建设项目投资估算编审规程.docx VIP
- 小学英语新人教版PEP三年级下册全册教案(2025春).doc
- 装载机司机安全教育考试试题及答案.doc
文档评论(0)