算法设计期末复习总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计期末复习总结

分治法:计算方向:自顶向下;分为3个步骤:divide:整个问题划分为多个子问题;conquer求解每个子问题combine合并子问题的解,形成原问题的解设输入大小为n,T(n)为时间复杂性,当nc,T(n)=(1);总之:(1)if ncT(n)= aT(n/b)+D(n)+C(n).1同阶。定义:e(f(n))={g(n)|ЭC1,C20,n0;当n=n0,C1f(n)=g(n)=C2f(n)}称为与f(n)同阶。例题:证明,其中证:由于,,所以。2、高阶。定义:Ω(f(n))={ g(n)|ЭC1,C20,n0;当n=n0,0=g(n)=C2f(n)}称为比f(n)高阶。二分查找:BinarySearch(max,min,des)mid-(max+min)/2while(min=max)mid=(min+max)/2if mid=des thenreturn midelseif mid des thenmax=mid-1elsemin=mid+1;returnmaxO(log n)归并算法(mergesort):输入:Ap,r:欲排序数据在数组A中。输出:Ap,r:排序后的数据。方法:Merge-Sort(A,p,r)if pr thenq(p+r)/2Merge-Sort(A,p,q)Merge-Sort(A,q+1,r)Merge(A,p,q,r)。*Merge算法十分简单,需要O(n)次比较。 *若要排序存储在数组A的n个数,只需调用Merge-Sort(A,1,n)。2.Merge-Sort的分析·If n=1,T(n)=(1)·Divide阶段的时间复杂性: D(n)= (1)·Conquer阶段的时间复杂性:2T()·Combine阶段的时间复杂性:C(n)=(n)(1)if n=1·T(n)=2T(n/2)+(n)+(1)if n1·使用循环展开法求解T(n)=(n)。快速排序算法(Quick-Sort):描述:有数组A[p….r]q=(p+r)/2;1).divide:把数组A[p…r]划分为两个非空数组A1[p…q],A2[q+1,r];使得A1中的每个数都小于A2中的;2).conquer:递归调用排序算法排序A1,A2;3).combine:将两个已经排好序的算法合并算法详细:Quick_sort(A[],p,r)If prThen q=partition(A[],p,r)Quick_sort(A[],p,q)Quick_sort(a[],q+1,r);Partition算法:Partition(a[],p,r)X=a[p]i=p-1;j=r+1;repaeatj- - until a[j]=x;repeat i++ until a[i]=x;if ijthen exchange a[i] a[j]else return j;将数组A有序排序,小的数放在前面A[i]=X=A[j];最坏时间复杂性:(n2)划分平衡时间复杂性:(nlgn)动态规划技术(Dynamic Programming):适用:当一个优化问题可以分为多个子问题,子问题的解被重复使用。满足条件:1.问题据有优化子结构(Optimal substructure)2.有重叠子问题(Overlapping sub-problems)优化结构:如果一个问题的优化解包含了他的子问题的优化解,则称该问题据具有优化子结构;特点:求解每个子问题仅一次,并保存结果,以后用到时直接存取,不重复计算,节省时间。计算方向:自底向上步骤:分析优化解的结构递归定义最优解的代价;自底向上的计算优化解的代价保存,并获取构造最优解的信息;根据构造最优解的信息构造优化解;矩阵链乘积(Matrix-chain Multiplication)(~)优化解的代价方程:假设:m[I,j]=计算Ai-j的最小乘法数=0;m[i,j]=m[i,k]+m[k+1,j]+pi-1pkpj, m[i,j]= 0 if i=j minikj{m[i,k]+m[k+1,j]+pI-1pkpj} if ij时间复杂性T(n)=0(n3)空间复杂性S(n)=0(n2)最长公共子序列问题步骤:1.问题定义 2.建立求解LCS长度的递归方程3.LSC长度的计算4.构造最优解0-1背包最优子结构:问题分析:令f(i,j)表示在前i(0≤in)个物品中能够装入容量为j(0≤j≤W)的背包中的物品的最大价值,则可以得到如下的动态规划函数: f[i,j]=0(i=0 OR j=0)f[i,j]=f[i-1,j] jwi①f[i,j]=max{f[i-1,j] ,f[i-1,j-wi] +vi } jwi②伪代码:f[0,j

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档