计算机算法设计与分析第1章算法概述课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机算法设计与分析第1章算法概述课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 算法 设计 分析 概述 课件
- 资源描述:
-
1、1理论课:理论课:110周,周,40学时学时 周二周二(5-6)、周五、周五(1-2)上机:上机: 18学时学时期末考试:期末考试: 闭卷笔试,第闭卷笔试,第 11周周上课点名三次不到者取消考试资格;上课点名三次不到者取消考试资格;迟到或作业缺交,一次扣迟到或作业缺交,一次扣10分(平时成绩)。分(平时成绩)。2本课程是计算机类专业计算机类专业的专业基础课程;通过课程学习和上机实践课程学习和上机实践,对计算机常用算法有一个较全面的了解,掌握通用算法的一般设计方法;学会对算法的时间算法的时间、空间复杂度分析空间复杂度分析,掌握提高算法效率的方法提高算法效率的方法和途径。3(一)(一) 从理论和实
2、践的角度理解从理论和实践的角度理解 计算机科学的基石;掌握标准算法计算机科学的基石;掌握标准算法(二)从算法(二)从算法对于对于程序的重要性来讲程序的重要性来讲 皮之不存,毛将附焉?皮之不存,毛将附焉?(三)(三) 从对同学们的能力培养看从对同学们的能力培养看 开发分析问题的能力开发分析问题的能力4(一)数据结构关心的对象(一)数据结构关心的对象 各种各种数据结构数据结构的作用和效率、具体的问题的作用和效率、具体的问题(二)算法设计与分析关心的对象(二)算法设计与分析关心的对象 算法算法设计技术设计技术的适用性和效率、的适用性和效率、一般性方一般性方法法5第第1 1章章 算法概述算法概述第第2
3、 2章章 递归与分治策略递归与分治策略第第3 3章章 动态规划动态规划第第4 4章章 贪心算法贪心算法第第5 5章章 回溯法回溯法第第6 6章章 分支限界法分支限界法* *7-97-9章属研究生学习内容,可自学了解章属研究生学习内容,可自学了解。6学习要点学习要点: 一、一、理解算法的概念,以及问题求解的理解算法的概念,以及问题求解的过程。过程。二、二、掌握算法的几种描述方式。掌握算法的几种描述方式。三、三、理解算法的计算复杂性概念。理解算法的计算复杂性概念。四、四、掌握算法渐近复杂性的数学表述。掌握算法渐近复杂性的数学表述。7我们来编写一个烧开水的算法:输入输入自来水循环循环(反复)加热直到
4、水开输出输出开水8 算法概念算法概念:通俗地讲,算法是指解决问题通俗地讲,算法是指解决问题的一种方法或一个过程。严格地讲,算法是的一种方法或一个过程。严格地讲,算法是由若干条指令组成的有穷序列。由若干条指令组成的有穷序列。输入输出算法问题“计算设备”91、算法具有某些特性,如下几条:、算法具有某些特性,如下几条:(1)输入输入:有零个或多个外部提供的量作为算:有零个或多个外部提供的量作为算法的输入。法的输入。(2)输出输出:算法产生至少一个量作为输出。这:算法产生至少一个量作为输出。这些输出是和输入有某种特定关系的量。些输出是和输入有某种特定关系的量。10(3)确定性确定性:组成算法的每条指令
5、是清晰,无:组成算法的每条指令是清晰,无歧义的。歧义的。(4)有限性(有穷性)有限性(有穷性):算法中每条指令的执:算法中每条指令的执行次数是有限的,执行每条指令的时间也是行次数是有限的,执行每条指令的时间也是有限的。有限的。11(5)可实现性可实现性:此性质是指算法中有待实现的此性质是指算法中有待实现的运算都是相当基本的,每种运算至少在原理运算都是相当基本的,每种运算至少在原理上能由人用纸和笔在有限的时间内完成。上能由人用纸和笔在有限的时间内完成。(补充)(补充)122、关于算法有几个要点:、关于算法有几个要点:(1) 算法所处理的输入的值域必须严格定义。算法所处理的输入的值域必须严格定义。
6、(2) 同样一种算法可以用几种不同的形式来描同样一种算法可以用几种不同的形式来描述。述。13(3) 同一个问题可以存在多种解决的算法。同一个问题可以存在多种解决的算法。(4) 同一个问题的几种算法可能会基于完全不同一个问题的几种算法可能会基于完全不同的解题思路,而且解题速度也会有显著不同的解题思路,而且解题速度也会有显著不同。同。141)问题的陈述 用科学规范的语言用科学规范的语言,对所求解的问题做准确的对所求解的问题做准确的描述描述.2)建立数学模型 通过对问题的分析通过对问题的分析,找出其中的所有操作对象找出其中的所有操作对象及操作对象之间的关系并用数学语言加以描及操作对象之间的关系并用数
7、学语言加以描述述.3)算法设计算法设计 根据数学模型设计问题的计算机求解算法根据数学模型设计问题的计算机求解算法.154)算法的正确性证明算法的正确性证明 证明算法对一切合法输入均能在有限次计算证明算法对一切合法输入均能在有限次计算后产生正确输出后产生正确输出.5)算法的程序实现 将算法正确地编写成机器语言程序将算法正确地编写成机器语言程序.6)算法分析算法分析 对执行该算法所消耗的计算机资源进行估算对执行该算法所消耗的计算机资源进行估算.16通过学习已被实践证明是有用的一些基本设通过学习已被实践证明是有用的一些基本设计策略,如递归、回溯等,掌握一般的算法计策略,如递归、回溯等,掌握一般的算法
8、设计方法,学会设计高效的算法。设计方法,学会设计高效的算法。17证明算法对所有可能的输入都能算出正确的证明算法对所有可能的输入都能算出正确的答案,这一工作称为答案,这一工作称为算法确认算法确认。这一领域是。这一领域是当前许多计算机工作者集中研究的对象,还当前许多计算机工作者集中研究的对象,还处于相当初期的阶段。处于相当初期的阶段。在学习本课程中,我们仅对算法的正确性进在学习本课程中,我们仅对算法的正确性进行一般的非形式化讨论,以及对算法的程序行一般的非形式化讨论,以及对算法的程序实现进行测试验证。实现进行测试验证。18分析算法包括分析算法包括 定量的分析算法需要多少定量的分析算法需要多少计算计
9、算时间时间和和存储空间存储空间,分析算法不仅可以预计,分析算法不仅可以预计 算算法能否有效得完成任务,而且可以知道算法法能否有效得完成任务,而且可以知道算法在在最坏最坏、最好最好和和平均情况平均情况下的运算时间,对下的运算时间,对解决同一问题解决同一问题的的不同算法不同算法的优劣作出比较。的优劣作出比较。191、计算两个整数的最大公约数问题的一个现、计算两个整数的最大公约数问题的一个现代数学术语表述代数学术语表述 欧几里得算法基于的方法是重复应用下列欧几里得算法基于的方法是重复应用下列等式:等式: gcd (m , n) = gcd (n , m mod n) , 直到直到m mod n等于等
10、于0。gcd(60,24)=gcd(24,12)=gcd(12,0)=12注:gcd (m , 0) =m,m mod n 表示m除以n之后的余数,称为模运算20计算计算gcd(m,n)的欧几里得算法:)的欧几里得算法:第一步:如果第一步:如果n=0,返回返回m的值作为结果,同的值作为结果,同时过程结束;否则,进入第二步。时过程结束;否则,进入第二步。第二步:用第二步:用n去除去除m,将余数赋给,将余数赋给r。第三步:将第三步:将n的值赋给的值赋给m,将,将r的值赋给的值赋给n,返,返回第一步。回第一步。21ALGORITHM Euclid(m,n)/ 计算计算gcd(m,n)/ 输入:非负整
展开阅读全文