- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 算法及其基础 1.1 引子 1.2 算法的基本概念 1.3 算法设计的一般过程 1.4 算法分析 1.5 相关基础 本章的要点与难点 要点: 理解算法的概念。程序与算法的区别和联系; 理解算法设计的一般过程; 掌握用C++/JAVA语言以及伪代码描述算法的方法; 掌握算法的计算复杂性概念及分析。 难点: 算法的计算复杂性(主要指时间复杂性)分析。 1.2 算法的基本概念 – 算法 算法 (Algorithm): 对于计算机科学来说,算法指的是对特定问题求解步骤的一种描述,是若干条指令的有穷序列。 算法的特性: 输入(0个或多个)、输出(至少1个)、确定性(无歧义)、有限性、可行性。 描述方式: 自然语言、图形、程序设计语言、伪代码 本书采用了面向对象程序设计语言C++,讲授时采用伪代码。 算法与程序的区别? 1.2 算法的基本概念 – 程序 程序(Program) 程序是算法用某种程序设计语言的具体实现; 程序可以不满足算法的性质(4)。例如: 操作系统是一个在无限循环中执行的程序,因而其不是一个算法; 操作系统的各种任务:可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。 1.2 算法的基本概念 – 经典问题 会场安排问题、单源最短路径、哈夫曼编码、最小生成树 排序与查找、循环赛日程表 最长公共子序列、矩阵连乘、凸多边形最优三角剖分、加工顺序等 N后、最大团、图的m着色 0-1背包、TSP、布线问题 等等 1.2 算法的基本概念 – 拼图游戏 1.2 算法的基本概念 – 0-1背包问题 1.2 算法的基本概念 – 布线问题 1.3 算法设计的一般过程 1.4 算法分析 – 算法复杂性 算法复杂性(亦称算法复杂度)为算法运行时所需计算机资源的度量: 时间复杂性(影响因素包括问题规模n、输入序列I、算法本身A):T(n,I,A) ? T(n) 空间复杂性(影响因素包括输入输出数据IO、辅助变量V、算法本身A):S(IO,V,A) ? S(V) 很显然: 算法所需资源越多,算法的复杂性就越高; 算法所需资源越少,算法的复杂性就越低。 1.4 算法分析 算法分析: 对算法的时间复杂性和空间复杂性进行分析,这里主要还是指对算法的时间复杂性的分析。 方法:事后统计 和 事前分析 算法分析的意义: 算法设计:复杂性尽可能的低; 算法选用:选择复杂性最低的算法; 算法改进:算法分析有助于算法的改进。 1.4 算法分析 – 影响算法运行时间的因素(除算法本身外): 机器; 采用语言及编译程序; 编程能力等。 算法分析无需具体时间(精确或近似): 针对同一问题不同算法的比较,相对而非绝对; 应该独立于机器及实现语言; 无论科技如何发展,其运行时间的测度应始终成立; 关心的是大的问题规模时的运行情况。? 渐近复杂性 1.4 算法分析 – 算法渐近复杂性态 算法渐近复杂性态: 设算法的运行时间为T(n),如果存在T*(n),使得 就称T*(n)为算法的渐近性态或渐近时间复杂性。 1.4 算法分析 – 算法渐近复杂性态示例 假设算法A的运行时间表达式为T1(n): T1(n) = 30n4+20n3+40n2+46n+100 T*1(n) ≈ n4 (阶) 假设算法B的运行时间表达式为T2(n): T2(n) = 1000n3+50n2+78n+10 T*2(n) ≈ n3 (阶) 1.4 算法分析 – 几类阶的增长趋势 1.4 算法分析 – 渐近复杂性记号 渐近意义下的记号:O、Ω、Θ 渐近上界 - O (big o) 渐近下界 - Ω (big ω) 渐近精确界 - Θ (big θ) o、ω和θ 1.4 算法分析 – 渐近上界 渐近上界 - O (big o): 设f(N)和g(N)是定义在正数集上的正函数,下同。 定义:如果存在正的常数C和自然数N0,使得当N?N0时有f(N)?Cg(N),则称函数f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=O(g(N))。 即f(N)的阶不高于g(N)的阶。 求T(n) = 10n + 4的渐近上界O: O(n) 1.4 算法分析 – 渐近上界O运算规则 根据O的定义,容易证明它有如下运算规则: (1) O(f) + O(g) = O(max(f, g)); (2) O(f) + O(g) = O(f + g); (3) O(f)O(g) = O(fg); (4) 如 g(N) = O(f(N)),则 (f) + O(g) = O(f); (5) O(cf(N)) = O(f(N)),其中c是一个正的常
您可能关注的文档
最近下载
- 最新2023版知识产权贯标GBT29490 09知识产权维护运用控制程序(含表单)[知识产权合规管理体系文件].docx
- 煤矿合法股权转让协议9篇.docx VIP
- GB_T 9711-2023石油天然气工业 管线输送系统用钢管.doc VIP
- 导体结构设计.xls VIP
- 电梯安全风险管控清单.doc VIP
- 生殖医学中心专业技术人员考核试题及答案.docx VIP
- 2024年度健康体检大数据蓝皮书.pdf
- 部编版语文六年级上册第四单元教案+教学反思(共6篇).pdf VIP
- 球墨铸铁管与其它管材的连接件技术规范.docx VIP
- NB∕T 11273-2023 工业锅炉设计文件鉴定技术导则.pdf
文档评论(0)