- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题课-read
第4-13章习题课 2007年12月6目 第4章 贪心算法 贪心算法的基本思想 通过一系列小的步骤来建立一个解,在每一步根据局部情况选择一个决定使得某些主要的指标能得到优化. 贪心算法的求解结果 近似解(经常比较理想) 最优解(给出严格证明) 第4章 贪心算法(续1) 证明贪心算法获得最优解的方法 算法领先 贪心算法的每一步都做得比任何其它算法好. 区间调度和最短路径(用归纳法来证明每一步都领先). 交换论证 考虑对这个问题的任何一个最优解,逐渐把它转换成由贪心算法找到的解且不损害它的质量. 最小延迟调度和最小生成树 其它方法 区间划分(调度所有的区间):直接证明不会有区间在结束时没有标签以及没有两个重叠的区间被分给相同的标签. 第四章 习题 习题1: Yes(应用MST性质) 习题2: (a) 真(应用MST性质) (b) 假 第四章 习题(续1) 习题3:Yes(算法领先证明,归纳法证明) 证明:设贪心算法用的卡车集合A={A1,A2,…}, 最优算法用的卡车集合O={O1,O2,…},箱子集合B={B1,B2,…}. Step1:显然A1中最后一个箱子的编号不小于O1中最后一个箱子的编号. Step2:假设Ak中最后一个箱子的编号不小于Ok中最后一个箱子的编号,则Ak+1中最后一个箱子的编号也不会小于Ok+1中最后一个箱子的编号(反证法). Step3:归纳证明结束. Step4:证明|O|=|A|(反证法). 第四章 习题(续2) 习题4: 算法: i=j=1; while (i=n and j=m) if(si==s’j){i=i+1; j=j+1; kj=i; } else i=i+1; if(j==m+1) return K1,k2,…km; else return “NO” 时间复杂度:O(m+n) 第四章 习题(续3) 证明(算法领先证明,归纳法证明) 设存在一个S的子序列Sl1,Sl2,…Slm等于S’,则算法一定能够找到子序列Sk1,Sk2,..Skm且kj=lj (1=j=m). Step1:j=1时显然成立. Step2:设下标为j-1时成立,即kj-1=lj-1 成立,则下标为j时也成立(反证法). Step3:归纳证明结束. 第5章 分治策略 分治策略的基本思想 Divide Conquer combine 分解易合并易:二分查找,整数乘法 分解易合并难:归并排序,计算逆序,最邻近点对 分解难合并易:快速排序 第5章 分治策略(续1) 分治策略的适用范围 分治策略只能把多项式阶降为更低的多项式阶,而不能把指数阶降为多项式阶.动态规划可以将某些问题的指数阶降为多项式阶. 分治策略复杂度的计算公式 T(n)=kT(n/m)+f(n) T(n)=T(a)+T(b)+f(n), a+b=n 第5章 习题 习题1: 分析:取数据库A中的中位数和数据库B中的中位数,然后比较两个中位数的大小。不妨假设B中的中位数大于A中的中位数,则A中比其中位数小的数据(1.. n/2-)以及B中比其中位数大的数据(n/2++ 1 .. n)都不可能是两个数据库中的中位数。因此可以想象成将数据库A和数据库B的大小各自减少n/2-. 第5章 习题(续1) 习题2 分析:求重要的逆序个数与教材中求逆序个数相似,其核心思想都是利用归并排序.只是本题中合并算法与重要逆序计数算法分开考虑且重要逆序计数算法与教材的算法略有不同. 第6章 动态规划 动态规划的基本思想 An algorithm that employs this technique is not recursive by itself, but the underlying solution of the problem is usually stated in the form of a recursive function. Unlinke the case in divide-and-conquer algorithms, immediate implementation of the recurrence results in identical recursive calls that are executed more than once. For this reason, this technique resorts to evaluating the recurrence in a bottom-up manner, saving intermediate results that are used later to compute the desired solution. 第6章 动态规划(续1) 动态规划求解问题的基本性质
文档评论(0)