- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课后练习:算法分析题 算法分析题4-6(教材第128页):字符a~h出现的频率恰好是前8个Fibonacci数,它们的哈夫曼编码是什么? 解答: Fibonacci数列 前8个Fibonacci数为: 1, 1, 2, 3, 5, 8, 13, 21, …… 则a, b, c, d, e, f, g, h这8个字符出现的次数依次为:1, 1, 2, 3, 5, 8, 13, 21次。 以此构造一颗Huffman树(不唯一)如右: 1 1 2 2 4 3 7 5 12 8 13 20 21 33 54 0 0 0 0 0 0 0 1 1 1 1 1 1 1 对应的Huffman编码为: a: 0011100 b:0011101 c: 001111 d: 00110 e: 0010 f: 000 g: 01 h: 1 课后练习 练习2:假设有25分、10分、5分和1分四种硬币,需要找给顾客2元5角钱,请问用贪心算法可以求出何种找零方案?该方案是最优的么?为什么? 解答: 2元5角 = 250分,按照贪心算法(尽量用面值大的硬币找零),则需要25分硬币10个即可。 该算法是最优的,因为五种硬币的面值中5分是25分和10分的约数(因数)。 课后练习 练习3:活动安排问题。假设有9个活动申请使用1个会议室,每个活动的开始时间和终止时间如下。用贪心算法设计一个活动安排表,要求要尽可能的多安排活动。会议室不允许被多个活动同时占用。 活动序号 1 2 3 4 5 6 7 8 9 起始时间 2 1 2 5 7 4 6 8 15 结束时间 5 5 8 10 11 13 15 22 24 活动序号 1 2 3 4 5 6 7 8 9 起始时间 2 1 2 5 7 4 6 8 15 结束时间 5 5 8 10 11 13 15 22 24 根据贪心算法,第1个被安排的活动为1号活动,因为它的结束时间(时刻5)最早。(贪心选择性质) 然后每次都选取起始时间最接近于上一次活动的结束时间的活动,所以分别依次选择4号活动(时刻10结束)、9号活动(时刻24结束),则最优解为:( 1, 4, 9 )。 显然,最优解不唯一,比如: ( 2, 4, 9 )。但显然,用贪心策略求出的可行解是最优的。 课后练习 练习4:单源最短路径问题。求下面连通图中从源顶点v0到其它各顶点的最短路径。 ① 列出源顶点到其它顶点的最短路径长度和路径中顶点序列。 ② 证明该算法的正确性。 迭代 S u dist[1] dist[2] dist[3] dist[4] 初始 {0} - 10 maxint 30 100 1 {0,1} 1 10 60 30 100 2 {0,1,3} 3 10 50 30 90 3 {0,1,3,2} 2 10 50 30 60 4 {0,1,3,2,4} 4 10 50 30 60 算法正确性证明:教材114页-115页 课后练习 练习5:最小生成树问题。 ① 用Prim或者Kruskal算法求出下图中的最小生成树。 ② 证明该算法的正确性。(教材116页) V1 V2 V4 V3 V5 V6 6 3 5 2 3 6 5 1 5 4 课后练习 Kruskal算法: V1 V2 V4 V3 V5 V6 6 3 5 2 3 6 5 1 5 4 V1 V2 V4 V3 V5 V6 3 2 3 1 4 Prim算法: V1 V2 V4 V3 V5 V6 6 3 5 2 3 6 5 1 5 4 V1 V3 V6 V4 V5 V2 练习6:一队徒步旅行者要从A地到B地,两地间距离为L公里。他们每天最多可以走d公里(与地形、天气条件等无关),中间需要就地宿营。 假定这些潜在的宿营地点位于起点A地的距离为x1, x2, ……, xn的地方,显然它们之间的距离小于等于d,称这些地点(停止点)是有效的。 于是,一组停止点是有效的,如果人们只能在这些地方宿营并且仍旧能顺利完成旅行。则必须假设n个停止点所组成的集合都是有效的;否则就没法走完整个路程。 问题1:假设两地距离为100公里,潜在的宿营地点为{ 6, 14, 30, 37, 48, 65, 73, 76, 88, 90,94 }。旅行者每天最多走18公里。给出最优(最少)的有效宿营地组合(最少几天能走完)。 问题2:证明该算法的正确性(解的最优)。 课后练习 问题1:假设两地距离为100公里,潜在的宿营地点为{ 6, 14, 30, 37, 48, 65, 73, 76, 88, 90,94 }。旅行者每天最多走18公里。给出最优(最少)的有效宿营地组合(最少几天能走完)。 解答:根据贪心算法,潜在的宿营地点的选取应该遵循每天尽量多走(但不多于18公里)的原则,以
文档评论(0)