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