背包问题的算法设计策略对比与分析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
背包问题的算法设计策略对比与分析

算法设计与分析大作业 班 级: 电子154 姓 名: 吴志勇 学 号: 1049731503279 任课老师: 李瑞芳 日 期: 01背包问题的算法设计策略对比与分析 0 引言 对于计算机科学来说,算法的概念是至关重要的。在一个大型软件系统的开发中,设计出有效的算法将起到决定性的作用。通俗的讲,算法是解决问题的一种方法。也因此,算法分析与设计计算科学的核心问题之一,也是计算机科学与技术专业本科及研究生的一门重要的专业基础课。算法分析与设计是计算机软件开发人员必修课,软件的效率和稳定性取决于软件中所采用的算法;对于一般程序员和计算机专业学生,学习算法设计与分析课程,可以开阔编程思路,编写出优质程序。解析培养怎样分析算法的好于坏,怎样设计算法,并以广泛用于计算机科学中的算法为例,对种类不同难度的算法设计进行系统的介绍与比较。本课程将培养学生严格的设计与分析算法的思维方式,改变随意拼凑算法的习惯。本课程要求具备离散数学程序设计语言数据结构等先行课课程的知识。 分治与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。 递归算法举例: Fibonacci数列 无穷数列1,1,2,3,5,8,13,21,34,55,……,称为Fibonacci数列。它可以递归地定义为: 第n个Fibonacci数可递归地计算如下: int fibonacciint n if n = 1 return 1; return fibonaccin1fibonaccin2; 从上看出: 递归算法的有点为: 结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法调试程序带来很大方便。 缺点为:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。 分治算法: 一个分治法将规模为n的问题分成k个规模为n/m的子问题去解。设分解阀值n0=1,且adhoc解规模为1的问题耗费1个单位时间。再设将原问题分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用fn个单位时间。用Tn表示该分治法解规模为P=n的问题所需的计算时间,则有: 通过迭代法求得方程的解: 算法举例: 二分搜索技术:给定已按升序排好序的n个元素a0n1,现要在这n个元素中找出一特定元素x。 据此容易设计出二。搜索算法: templateclass Type int BinarySearchType a const Type x int l int r while r = l int m = lr2; if x == am return m; if x am r = m1; else l = m1; return 1; 算法复杂度分析: 每执行一次算法的while循环, 待搜索数组的大小减少一半。因此,在最坏情况下,while循环被执行了Ologn 次。循环体内运算需要O1 时间,因此整个算法在最坏情况下的计算时间复杂性为Ologn。 快速排序法: 在快速排序中,记录的比较和交换是从两端向中间进行的,关键字较大的记录一次就能交换到后面单元,关键字较小的记录一次就能交换到前面单元,记录每次移动的距离较大,因而总的比较和移动次数较少。 void QuickSort Type a int p int r if pr int q=Partitionapr; QuickSort apq1; 对左半段排序 QuickSort aq1r; 对右半段排序 复杂性分析: 最坏时间复杂度:On2 平均时间复杂度:Onlogn 辅助空间:On或Ologn 22 动态规划 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存已解决的子问题的答案,而在需要时再

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档