算法设计和分析-复习byTqun.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、名词解释 算法评价的主要标准 算法的时间复杂度: 针对问题指定基本运算,计数算法所做的基本运算次数 时间和空间复杂度 算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度。)P类. 由所有多项式时间可验证的判定问题组成的问题类称作NP类 数学建模 当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言,把它表述为数学式子,也就是数学模型,然后用通过计算得到的模型结果来解释实际问题,并接受实际的检验。这个建立数学模型的全过程就称为数学建模。 (1)划分:把规模为n的原问题划分为k个规模较小的子问题,并尽量使这k个子问题的规模大致相同。 (2)求解子问题:各子问题的解法与原问题的解法通常是相同的,可以用递归的方法求解各个子问题,有时递归处理也可以用循环来实现。 (3)合并:把各个子问题的解合并起来,合并的代价因情况不同有很大差异,分治算法的有效性很大程度上依赖于合并的实现。 贪婪算法 贪心算法又叫登山法,它的根本思想是逐步到达山顶,即逐步获得最优解,以逐步的局部最优,达到最终的全局最优。 动态规划 设计动态规划算法的步骤(1)找出最优解的性质,并刻划其结构特征。(2)递归地定义最优值。(3)以自底向上的方式计算出最优值。(4)根据计算最优值时得到的信息,构造最优解 蛮力算法 利用枚举所有的情况,或者其它大量运算又不用技巧的方式,来求解问题的方法。 在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。 此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。 常见的两种分支限界法 (1)队列式(FIFO)分支限界法 按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。 (2)优先队列式分支限界法 按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。算法在执行的过程中随机选择下一个计算步骤概率算法大致分为四类:数值概率算法,蒙特卡罗(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法和舍伍德(Sherwood)算法。N的三次方 2.T(n)=T(n-1)+1 求T(n) 迭代法得:T(n)=n 3.T(n)= T(n/2)+O(n) 求T(n) 由主定理:a=1 b=2 x=logba=0 e=-1 不满足主定理,所以 思路:因为f(n)是多项式,设p(n)=O(nk),k≥0。根据递归树计算方式,有: T(n)= aT(n/b)+nk 。 T(n/b)= aT(n/b2)+(n/b)k 。 T((n/b2)= aT(n/b3)+( n/b2)k 。 …… 于是得到:T(n)= nk (1+ a/ bk + (a/ bk)2 + (a/ bk)3 +···+ (a/ bk)h),h=logbn。 1:logba=k 这种情况下a/ bk= 1,显然T(n)= O(nk logbn)。 2:logba≠k 此时等比数列公比不是1,根据等比数列求和公式化简得到: T(n)=( nk –nx)/(1-a/bk),x=logba。 如果logbak,则T(n)= O(nk)。 如果logbak,则T(n)= O(nx)。x=logba。 logba=0。 由上可得T(n)=2n = O(n) 4.T(n)=T(n/3)+T(2n/3) 求T(n) 使用递归树求解: 层数 k: n(2/3)k =1 ( (3/2)k=n ( k=log3/2n T(n)=O(logn) 5. T(n)=2T(n/2)+2求T(n) (以下的W为T) 6. i=1; while(in) i=i*2; T(n)=n/2 三、计算与写结果 1.有1000个苹果,10个箱子,怎么个放法,不管想拿多少个苹果,都能成箱成箱地拿? 按照2的k次方来放 箱子中分别放1 2 4 8 16 32 64 128 256 489 2.有512个数,要找最大和最小数,至少要比较多少次? 参考:/keyeagle/article/details/6107198 1.将n个元素两两一组分成 (n/2( 组 2.每组比较,得到 (n/2( 个较小和 (n/2( 个较大

文档评论(0)

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

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

1亿VIP精品文档

相关文档