- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计与分析
算法设计与分析 主要参考书目 Sartaj Sahni: ”DataStructures,Algorithms,and Applications in C++” Sara Baase: “Computer Algorithms-Introduction to Design and Analysis” 2.1 引论 程序的性能 指程序运行时所需的内存空间量和计算时间:系统开销和求解问题本身的开销 忽略系统开销,区分出算法的性能 为什么要研究性能?设计满足要求的算法. 怎样定义“要求”?需要某种度量指标. 很多问题找不到满足要求的算法 性能评价的方法 解析的方法 测量的方法 本课程以解析方法为主-算法分析。 续 问题和问题的实例 排序问题:任意给定具有“序”的关系的集合U上的n个元素,试(给出一算法)将这些元素按“从小到大”进行排列. 问题实例:任给n=100个整数,试将其排序. 算法必须对任意问题实例都能给出解果-算法的一般性. 算法使用一些能机械执行的基本操作-算法的机械性. 算法由有穷长度的规则组成(例如有限自动机,计算机语言写得程序). 算法的执行针对的是问题实例. 实例长度(size):表示实例的数据结构的长度.例如,图的邻接表的长度,(n+m)u,u为节点的字节数.为了简化分析,我们往往忽略u,而用实例特征表示实例长度. 实例特征:描述问题实例长度(size)的参数.例如矩阵的阶数n是反映实例长度(n2)的参数.n为实例特征.实例特征选取有随意性. 算法分析建立算法执行时间或空间和实例特征的函数关系 2.2 空间复杂度(Space Complexity) Sp(n) 程序p的空间复杂度指程序运行时所需的内存空间大小和实例特征的函数关系. 程序运行时所需空间包括: 指令空间-与实例特征无关的常数 数据空间:常量和简单变量-实例无关 复合变量(数组、链表、树和图等) 环境栈空间(函数调用)-是否递归? 复合变量所需空间常常和问题实例特征有关 2.2(续) 程序p的空间需求量包括两部分: S(p)=c+Sp(instance characteristics) c为常量(实例无关部分),Sp为可变部分 在使用解析方法研究程序p的空间复杂度仅考虑函数Sp(instance characteristics) 在分析空间复杂度时我们忽略与实例特征无关的空间需求量。 例题2.2 例题2.2(续) T a[] 和T x需2 bytes 指针(假定T为整型) 形参 n 需2 bytes i 需2 bytes 以上均为实例特征独立的空间需求量 所以s(n)=0 注:上述分析是从程序调用的角度看,存放无序表的数组占用的空间记在上层程序的帐上. 例题2.3 例题2.4 例题2.5 小结 对非递归算法 分析与实例特征有关的数据结构的大小 对递归算法 还要分析递归调用的深度和实例特征的关系 2.3 时间复杂度(time complexity)T(n) 时间复杂度指程序执行时所用的时间。 在使用解析方法时程序p的时间复杂度表示为函数T(描述输入量的参数)。 在解析地分析时间复杂度时,使用以下两种时间单位并计算: 操作计数(operation count):算法的基本操作 (程序)步计数(step count):分析全部程序 要点:基本操作或程序步的执行时间必须是常数。 2.3.2 操作计数 例题2.8 [Polynomial Evaluation] 例题2.8 [Polynomial Evaluation] 例题2.9 [Ranking] 例题2.9(续) 例如a=[4,3,9,3,7] 则r=[2,0,4,1,3] 又如a=[9,3,9,3,7]则r=[3,0,4,1,2] a中两个3有不同的rank值。 每个元素有不同的rank值; rank取值于{0,1,2,...,n-1}. 如果r[i]r[j],则a[i]≤a[j] 否则,r[i]r[j],矛盾! 上述关系可用于排序:rank值等于该元素在排序序列中的位置,按rank值将这些元素放到数组的相应位置. 例题2.10 [Rank Sort] 例题2.11 [Selection Sort] 最好,最坏和平均情形时间复杂度 当长度相同的不同输入有不同的计算时间时,时间复杂度分析分别考虑三种情形:即最好,最坏和平均. 在应用对计算时间有严格要求时应做最坏情形分析-upper bound. 最好情形分析给出一个算法的计算时间的下界,用来否定一个算法. 最好,最坏和平均情形时间复杂度 例题2.13 [Sequentia
您可能关注的文档
- 第课叩响现代文明的大门.ppt
- 第课可爱的小鸡椭圆和直线工具.ppt
- 第课唐朝的民族关系.ppt
- 第课启蒙运动.ppt
- 第课图层线型和颜色AUTOCAD教案.ppt
- 第课夏商制度与西周封建.ppt
- 第课基础建模编辑修改器.ppt
- 第课圣雄甘地.ppt
- 第课夏商周的政治制度.ppt
- 第课大一统与秦朝中央集权制度的确立.ppt
- c程序员面试题及答案.doc
- 第01讲 运动的描述(练习)(解析版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- c的面试题及答案.doc
- 第01讲 运动的描述(练习)(原卷版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- 2003年非典后航空复盘分析报告.pdf
- 第02讲 匀变速直线运动的规律(练习)(解析版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- 第02讲 匀变速直线运动的规律(练习)(原卷版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- c考试题库及答案.doc
- c面试题及答案.doc
- 汽车管件及座椅骨架、异形金属结构件生产线改造项目(技术改造)报告表.pdf
文档评论(0)