- 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~10周,40学时 周二(5-6)、周五(1-2) 上机: 18学时 期末考试: 闭卷笔试,第 11周 上课点名三次不到者取消考试资格; 迟到或作业缺交,一次扣10分(平时成绩)。 教学目的和要求 本课程是计算机类专业的专业基础课程; 通过课程学习和上机实践,对计算机常用算法有一个较全面的了解,掌握通用算法的一般设计方法; 学会对算法的时间、空间复杂度分析,掌握提高算法效率的方法和途径。 学习算法的重要性 (一) 从理论和实践的角度理解 —计算机科学的基石;掌握标准算法 (二)从算法对于程序的重要性来讲 —皮之不存,毛将附焉? (三) 从对同学们的能力培养看 —开发分析问题的能力 算法分析与设计课程与 数据结构课程 (一)数据结构关心的对象 各种数据结构的作用和效率、具体的问题 (二)算法设计与分析关心的对象 算法设计技术的适用性和效率、一般性方法 授课内容 第1章 算法概述 第2章 递归与分治策略 第3章 动态规划 第4章 贪心算法 第5章 回溯法 第6章 分支限界法 *7-9章属研究生学习内容,可自学了解。 第1章 算法概述 学习要点: 一、理解算法的概念,以及问题求解的过程。 二、掌握算法的几种描述方式。 三、理解算法的计算复杂性概念。 四、掌握算法渐近复杂性的数学表述。 什么是算法? 我们来编写一个烧开水的算法: 输入自来水 循环(反复)加热直到水开 输出开水 一、算法(Algorithm) 算法概念:通俗地讲,算法是指解决问题的一种方法或一个过程。严格地讲,算法是由若干条指令组成的有穷序列。 (一)算法的性质 1、算法具有某些特性,如下几条: (1)输入:有零个或多个外部提供的量作为算法的输入。 (2)输出:算法产生至少一个量作为输出。这些输出是和输入有某种特定关系的量。 (一)算法的性质 (3)确定性:组成算法的每条指令是清晰,无歧义的。 (4)有限性(有穷性):算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。 (一)算法的性质 (5)可实现性:此性质是指算法中有待实现的运算都是相当基本的,每种运算至少在原理上能由人用纸和笔在有限的时间内完成。(补充) (一)算法性质 2、关于算法有几个要点: (1) 算法所处理的输入的值域必须严格定义。 (2) 同样一种算法可以用几种不同的形式来描述。 (一)算法性质 (3) 同一个问题可以存在多种解决的算法。 (4) 同一个问题的几种算法可能会基于完全不同的解题思路,而且解题速度也会有显著不同。 (二)问题求解过程 1)问题的陈述 用科学规范的语言,对所求解的问题做准确的描述. 2)建立数学模型 通过对问题的分析,找出其中的所有操作对象及操作对象之间的关系并用数学语言加以描述. 3)算法设计 根据数学模型设计问题的计算机求解算法. (二)问题求解过程 4)算法的正确性证明 证明算法对一切合法输入均能在有限次计算后产生正确输出. 5)算法的程序实现 将算法正确地编写成机器语言程序. 6)算法分析 对执行该算法所消耗的计算机资源进行估算. (三)如何设计算法 通过学习已被实践证明是有用的一些基本设计策略,如递归、回溯等,掌握一般的算法设计方法,学会设计高效的算法。 (四)如何确认算法(证明其正确性) 证明算法对所有可能的输入都能算出正确的答案,这一工作称为算法确认。这一领域是当前许多计算机工作者集中研究的对象,还处于相当初期的阶段。 在学习本课程中,我们仅对算法的正确性进行一般的非形式化讨论,以及对算法的程序实现进行测试验证。 (五)如何分析(评价)算法 分析算法包括 定量的分析算法需要多少计算时间和存储空间,分析算法不仅可以预计 算法能否有效得完成任务,而且可以知道算法在最坏、最好和平均情况下的运算时间,对解决同一问题的不同算法的优劣作出比较。 二、算法的几种描述方式 1、计算两个整数的最大公约数问题的一个现代数学术语表述 欧几里得算法基于的方法是重复应用下列等式: gcd (m , n) = gcd (n , m mod n) , 直到m mod n等于0。 gcd(60,24)=gcd(24,12)=gcd(12,0)=12 注:gcd (m , 0) =m,m mod n 表示m除以n之后的余数,称为模运算 2、算法的一个结构化的描述 计算gcd(m,n)的欧几里得算法: 第一步:如果n=0,返回m的值作为结果,同时过程结束;否则,进入第二步。 第二步:用n去除m,将余数赋给r。 第三步:将n的值赋
文档评论(0)