计算机算法设计与分析第1章算法概述教学内容.ppt
《计算机算法设计与分析第1章算法概述教学内容.ppt》由会员分享,可在线阅读,更多相关《计算机算法设计与分析第1章算法概述教学内容.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机算法设计与分析第1章算法概述学习算法的重要性(一)(一)从理论和实践的角度理解从理论和实践的角度理解 计算机科学的基石;掌握标准算法计算机科学的基石;掌握标准算法(二)从算法(二)从算法对于对于程序的重要性来讲程序的重要性来讲 皮之不存,毛将附焉?皮之不存,毛将附焉?(三)(三)从对同学们的能力培养看从对同学们的能力培养看 开发分析问题的能力开发分析问题的能力2算法分析与设计课程与 数据结构课程(一)数据结构关心的对象(一)数据结构关心的对象 各种各种数据结构数据结构的作用和效率、具体的问题的作用和效率、具体的问题(二)算法设计与分析关心的对象(二)算法设计与分析关心的对象 算法算法设计
2、技术设计技术的适用性和效率、的适用性和效率、一般性方一般性方法法3授课内容第第1 1章章 算法概述算法概述第第2 2章章 递归与分治策略递归与分治策略第第3 3章章 动态规划动态规划第第4 4章章 贪心算法贪心算法第第5 5章章 回溯法回溯法第第6 6章章 分支限界法分支限界法*7-97-9章属研究生学习内容,可自学了解章属研究生学习内容,可自学了解。4第1章 算法概述学习要点学习要点:一、一、理解算法的概念,以及问题求解的理解算法的概念,以及问题求解的过程。过程。二、二、掌握算法的几种描述方式。掌握算法的几种描述方式。三、三、理解算法的计算复杂性概念。理解算法的计算复杂性概念。四、四、掌握算
3、法渐近复杂性的数学表述。掌握算法渐近复杂性的数学表述。5什么是算法?我们来编写一个烧开水的算法:输入输入自来水循环循环(反复)加热直到水开输出输出开水6一、算法(Algorithm)算法概念算法概念:通俗地讲,算法是指解决问题通俗地讲,算法是指解决问题的一种方法或一个过程。严格地讲,算法是的一种方法或一个过程。严格地讲,算法是由若干条指令组成的有穷序列。由若干条指令组成的有穷序列。图图1.1 1.1 算法的概念图算法的概念图7(一)算法的性质(一)算法的性质1、算法具有某些特性,如下几条:、算法具有某些特性,如下几条:(1)输入输入:有零个或多个外部提供的量作为算:有零个或多个外部提供的量作为
4、算法的输入。法的输入。(2)输出输出:算法产生至少一个量作为输出。这:算法产生至少一个量作为输出。这些输出是和输入有某种特定关系的量。些输出是和输入有某种特定关系的量。8(一一)算法的性质)算法的性质(3)确定性确定性:组成算法的每条指令是清晰,无:组成算法的每条指令是清晰,无歧义的。歧义的。(4)有限性(有穷性)有限性(有穷性):算法中每条指令的执:算法中每条指令的执行次数是有限的,执行每条指令的时间也是行次数是有限的,执行每条指令的时间也是有限的。有限的。9(一一)算法的性质)算法的性质(5)可实现性可实现性:此性质是指算法中有待实现的此性质是指算法中有待实现的运算都是相当基本的,每种运算
5、至少在原理运算都是相当基本的,每种运算至少在原理上能由人用纸和笔在有限的时间内完成。上能由人用纸和笔在有限的时间内完成。(补充)(补充)10(一)算法性质(一)算法性质2、关于算法有几个要点:、关于算法有几个要点:(1)算法所处理的输入的值域必须严格定义。算法所处理的输入的值域必须严格定义。(2)同样一种算法可以用几种不同的形式来描同样一种算法可以用几种不同的形式来描述。述。11(一)算法性质(一)算法性质(3)同一个问题可以存在多种解决的算法。同一个问题可以存在多种解决的算法。(4)同一个问题的几种算法可能会基于完全不同一个问题的几种算法可能会基于完全不同的解题思路,而且解题速度也会有显著不
6、同的解题思路,而且解题速度也会有显著不同。同。12(二)问题求解过程1)问题的陈述 用科学规范的语言用科学规范的语言,对所求解的问题做准确的对所求解的问题做准确的描述描述.2)建立数学模型 通过对问题的分析通过对问题的分析,找出其中的所有操作对象找出其中的所有操作对象及操作对象之间的关系并用数学语言加以描及操作对象之间的关系并用数学语言加以描述述.3)算法设计算法设计 根据数学模型设计问题的计算机求解算法根据数学模型设计问题的计算机求解算法.13(二)问题求解过程4)算法的正确性证明算法的正确性证明 证明算法对一切合法输入均能在有限次计算证明算法对一切合法输入均能在有限次计算后产生正确输出后产
7、生正确输出.5)算法的程序实现 将算法正确地编写成机器语言程序将算法正确地编写成机器语言程序.6)算法分析算法分析 对执行该算法所消耗的计算机资源进行估算对执行该算法所消耗的计算机资源进行估算.14(三)如何设计算法通过学习已被实践证明是有用的一些基本设通过学习已被实践证明是有用的一些基本设计策略,如递归、回溯等,掌握一般的算法计策略,如递归、回溯等,掌握一般的算法设计方法,学会设计高效的算法。设计方法,学会设计高效的算法。15(四)如何确认算法(证明其正确性)证明算法对所有可能的输入都能算出正确的证明算法对所有可能的输入都能算出正确的答案,这一工作称为答案,这一工作称为算法确认算法确认。这一
8、领域是。这一领域是当前许多计算机工作者集中研究的对象,还当前许多计算机工作者集中研究的对象,还处于相当初期的阶段。处于相当初期的阶段。在学习本课程中,我们仅对算法的正确性进在学习本课程中,我们仅对算法的正确性进行一般的非形式化讨论,以及对算法的程序行一般的非形式化讨论,以及对算法的程序实现进行测试验证。实现进行测试验证。16(五)如何分析(评价)算法分析算法包括分析算法包括 定量的分析算法需要多少定量的分析算法需要多少计算计算时间时间和和存储空间存储空间,分析算法不仅可以预计,分析算法不仅可以预计 算算法能否有效得完成任务,而且可以知道算法法能否有效得完成任务,而且可以知道算法在在最坏最坏、最
9、好最好和和平均情况平均情况下的运算时间,对下的运算时间,对解决同一问题解决同一问题的的不同算法不同算法的优劣作出比较。的优劣作出比较。17二、算法的几种描述方式二、算法的几种描述方式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之后的余数,称为模运算
10、182、算法的一个结构化的描述、算法的一个结构化的描述计算计算gcd(m,n)的欧几里得算法:)的欧几里得算法:第一步:如果第一步:如果n=0,返回返回m的值作为结果,同的值作为结果,同时过程结束;否则,进入第二步。时过程结束;否则,进入第二步。第二步:用第二步:用n去除去除m,将余数赋给,将余数赋给r。第三步:将第三步:将n的值赋给的值赋给m,将,将r的值赋给的值赋给n,返,返回第一步。回第一步。19ALGORITHM Euclid(m,n)/计算计算gcd(m,n)/输入:非负整数输入:非负整数m,n,其中,其中m,n不同时为零不同时为零/输出:输出:m,n的最大公约数的最大公约数whil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 算法 设计 分析 概述 教学内容
限制150内