算法设计与分析优秀.pptVIP

  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文档。上传文档
查看更多
算法设计与分析优秀.ppt

算法设计与分析 主讲教师:刘春凤 天津大学计算机系 cfliu@ 课程安排 课程安排 学生成绩评定方法:笔试+上机作业 上课时间: 周二,3,4节,周四,5,6节 上课地点:23-204 Slides download from: /learn/cfliu/ Algorithm_2009Spring 匿名登录 主要参考书目 Sartaj Sahni, 《Data Structures, Algorithms, and Applications in C++》, 机械工业出版社,2000 (影印版) Sartaj Sahni著,汪诗林等译,《数据结构、算法与应用--C++语言描述》,机械工业出版社,2003 (翻译版) T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms (the second edition),The MIT Press,2001《算法导论(第二版)》(影印版,中文本),高等教育出版社,2003 什么是算法? 为什么要对算法进行研究? 相对于计算机中使用的其他技术来讲,算法的作用是什么? 算法的定义 算法(algorithm)是定义良好的计算过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。 算法是一系列的计算步骤,用来将输入数据转换成输出结果。 算法是一种工具,用来解决一个具有良好规格说明的计算问题。 例1:将一列数按非降序进行排列 形式化描述: 输入:由n个数构成一个序列(a1, a2, …,an) 输出:对输入序列的一个排列(a’1, a’2, …,a’n),使得a’1≤a’2 ≤ … ≤ a’n 例如:给定一个输入序列(31, 41, 59,26),一个排序算法的返回的输出序列是(26,31,41,59) 输入序列(31, 41, 59,26)称为排序问题的一个实例(instance) 问题实例包含了求解该问题所需的输入 算法的正确性 若一个算法对每一个输入实例,都能输出正确的结果并停止,则称它是正确的算法。 算法可以用英语、以计算机程序或硬件设计形式来表达 为什么要对算法进行研究? 人类基因项目中要找出人类DNA中的所有基因,确定各种基因序列,需要到复杂的算法问题。 因特网中需要设计好的算法来处理大量的数据,实现全世界的人都能快速的访问和检索数据。 电子商务使得商品和服务可以以电子的形式进行谈判和交易,这其中需要算法来满足保密性等要求。 在制造业和其它商业应用中,需要算法来实现对稀有资源的有效分配。 等等 算法相对其他技术的区别 效率 解决同一问题的不同算法效率常常相差很大,这种效率上的差距的影响往往比硬件和软件方面的差距还要大 算法与计算机硬件一样,是一种技术。 总体性能不仅依赖于选择快速的硬件,还依赖于选择有效的算法。 2.1 引论 程序的性能 指程序运行时所需的内存空间量和计算时间:系统开销和求解问题本身的开销. 忽略系统开销,区分出算法的性能. 为什么要研究性能?设计满足要求的算法. 怎样定义“要求”?需要某种度量指标. 很多问题找不到满足要求的算法 性能评价的方法 解析的方法 测量的方法 本课程以解析方法为主-算法分析。 续 问题和问题的实例 排序问题:任意给定具有“序”的关系的集合U上的n个元素,试(给出一算法)将这些元素按“从小到大”进行排列. 问题实例(算法输入):任给n=100个整数,试将其排序. 算法必须对任意问题实例都能给出结果-算法的一般性. 算法使用一些能机械执行的基本操作-算法的机械性. 算法由有穷长度的一组规则组成(例如有限自动机,计算机语言写得程序). 实例长度-输入量 实例长度(size):表示实例的数据结构的长度.例如,图的邻接表的长度,(n+m)u,u为节点的字节数.为了简化分析,我们往往忽略u,而用实例特征表示实例长度. 实例特征:描述问题实例长度(size)的参数.例如矩阵的阶数n是反映实例长度(n2)的参数. 选取n为实例特征. 实例特征的选取有随意性. 算法分析建立算法执行时间或空间和实例特征的函数关系 2.2 空间复杂度(Space Complexity) Sp(n) 程序p的空间复杂度指程序运行时所需的内存空间大小和实例特征的函数关系. 程序运行时所需空间包括: 指令空间-与实例特征无关的常数 数据空间:常量和简单变量-实例无关 复合变量(数组、链表、树和图等) 环境栈空间(函数调用)-是否递归? 复合变量所需空间常常和问

文档评论(0)

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

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

1亿VIP精品文档

相关文档