计算机算法分析与设计优秀课件.ppt
《计算机算法分析与设计优秀课件.ppt》由会员分享,可在线阅读,更多相关《计算机算法分析与设计优秀课件.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机算法分析与设计第1页,本讲稿共33页学习目标学习目标n掌握算法分析与设计的基本理论掌握算法分析与设计的基本理论n掌握进行算法分析与设计的基本方法掌握进行算法分析与设计的基本方法(时间、空间复杂度分析,算法正确性(时间、空间复杂度分析,算法正确性的证明)的证明)n掌握计算机领域中常用的非数值计算方掌握计算机领域中常用的非数值计算方法,并学会用这些算法解决实际问题法,并学会用这些算法解决实际问题第2页,本讲稿共33页课程要求课程要求n教学方式:理论教学方式:理论(32学时学时),实践,实践(16学时学时)n考核方式:考试考核方式:考试(80%)+实验作业实验作业(20%)n课程学分:课程学分
2、:3n先修课程:先修课程:离散数学离散数学数据结构数据结构数值分析数值分析C语言程序设计语言程序设计第3页,本讲稿共33页授课教材授课教材n选用教材:选用教材:计算机算法基础计算机算法基础(第二版)(第二版)余祥宣,崔国华,邹海明余祥宣,崔国华,邹海明 华中科技大学出华中科技大学出版社版社n参考书目:参考书目:算法引论算法引论 张益新,沈雁张益新,沈雁 国防科技大学国防科技大学出版社出版社算法设计与分析算法设计与分析 周培德周培德 机械工业出机械工业出版社版社第4页,本讲稿共33页第一章第一章 导引导引 -计算机算法分析与设计是面向设计的、处于核心地位计算机算法分析与设计是面向设计的、处于核心
3、地位的教育课程的教育课程 -计算机算法是计算机科学和计算机应用的核心。计算机算法是计算机科学和计算机应用的核心。1.什么是算法?什么是算法?2.如何分析算法?如何分析算法?3.如何表示算法?如何表示算法?4.基本数据结构基本数据结构第5页,本讲稿共33页1.什么是算法什么是算法算法算法数值计算方法数值计算方法(求解数值问题,插值计(求解数值问题,插值计算、数值积分等)算、数值积分等)非数值计算方法非数值计算方法(求解非数值问题,主(求解非数值问题,主要进行判断比较)要进行判断比较)算法笼统的定义:算法笼统的定义:求解一确定类问题的任意一种特殊方法。求解一确定类问题的任意一种特殊方法。非形式描述
4、:非形式描述:算法就是一组有穷的规则,它规定了解决算法就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。某一特定类型问题的一系列运算。第6页,本讲稿共33页例例1 求两个正整数求两个正整数m,n的最大公因子的最大公因子算法算法1-1 欧几里得算法欧几里得算法输入:输入:正整数正整数m和和n输出:输出:m和和n的最大公因子的最大公因子第一步:求余数。第一步:求余数。rm%n第二步:判断第二步:判断r=0?,若是,终止,若是,终止(n为答为答案案),否则,转第三步。,否则,转第三步。第三步:互换第三步:互换,mn,nr,返回第一步。返回第一步。BeginRm%nr=0?Swap(m.n
5、)EndNY第7页,本讲稿共33页例例1 求两个正整数最大公因子的一个实例求两个正整数最大公因子的一个实例假设假设 m=21 和和 n=45,求,求21和和45的最大公因子的最大公因子第一步第一步:r=m%n=21%45=21;第二步第二步:r 不等于不等于0,转入第三步;,转入第三步;第三步第三步:互换,:互换,m=n=45,n=r=21,返回第一步。,返回第一步。第一步第一步:r=m%n=45%21=3;第二步第二步:r 不等于不等于0,转入第三步;,转入第三步;第三步第三步:互换,:互换,m=n=21,n=r=3,返回第一步。,返回第一步。第一步第一步:r=m%n=21%3=0;第二步第
6、二步:r 等于等于0,算法结束,算法结束,3即为即为21和和45的最大公因子。的最大公因子。第8页,本讲稿共33页算法的五个重要特性算法的五个重要特性n确定性确定性每一种运算必须要有确切的定义,无二义性每一种运算必须要有确切的定义,无二义性n可行性可行性运算都是基本运算,原理上能在有限时间内完成运算都是基本运算,原理上能在有限时间内完成n输入输入有有1个或多个输入个或多个输入n输出输出一个或多个输出一个或多个输出n有穷性有穷性在执行了有穷步运算后终止在执行了有穷步运算后终止第9页,本讲稿共33页算法的特性算法的特性n凡是算法,都必须满足以上五条特性。凡是算法,都必须满足以上五条特性。n只满足前
7、四条特性的一组规则不能称之为只满足前四条特性的一组规则不能称之为算法,只能叫做算法,只能叫做计算过程计算过程。n操作系统就是计算过程的一个典型例子。操作系统就是计算过程的一个典型例子。设计操作系统的目的是为了控制作业的运设计操作系统的目的是为了控制作业的运行,当没有作业时,这一计算过程并不终行,当没有作业时,这一计算过程并不终止,而是处于等待状态,一直等到一个新止,而是处于等待状态,一直等到一个新的作业的进入。的作业的进入。第10页,本讲稿共33页算法学习的五个内容算法学习的五个内容n如何设计算法如何设计算法运用一些基本设计策略规划算法运用一些基本设计策略规划算法n如何表示算法如何表示算法用恰
8、当的方式表示算法用恰当的方式表示算法n如何确认算法如何确认算法算法正确性的证明算法正确性的证明(算法确认算法确认algorithm validation)n如何分析算法如何分析算法通过时间和空间复杂度的分析,确定算法的优劣通过时间和空间复杂度的分析,确定算法的优劣n如何测试程序如何测试程序测试程序是否会产生错误的结果测试程序是否会产生错误的结果第11页,本讲稿共33页2.如何分析算法如何分析算法n算法分析是对一个算法需要多少计算时间和存储空间算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。作定量的分析。n算法分析步骤:算法分析步骤:n首先确定使用那些运算以及执行这些运算所用首先确定
9、使用那些运算以及执行这些运算所用的时间。的时间。(运算包括运算包括基本数值运算基本数值运算和和一些更基一些更基本的任意长序列的运算本的任意长序列的运算)n其次是要确定出能反映算法在各种情况下工作其次是要确定出能反映算法在各种情况下工作的数据集。(即要求我们编造出能产生最好、的数据集。(即要求我们编造出能产生最好、最坏和有代表性情况的数据配置,通过使用这最坏和有代表性情况的数据配置,通过使用这些数据来运行算法,以更了解算法的性能)些数据来运行算法,以更了解算法的性能)第12页,本讲稿共33页全面分析一个算法的两个阶段全面分析一个算法的两个阶段n事前分析事前分析(a priori analysis
10、)n求出该算法的一个求出该算法的一个时间限界函数时间限界函数(一些关于参一些关于参数的函数数的函数)n事前分析只限于每条语句的事前分析只限于每条语句的频率计数频率计数(frequency count,该语句的执行次数,该语句的执行次数,与所用的机器无关,且独立于程序设计语言,与所用的机器无关,且独立于程序设计语言,可由算法直接确定可由算法直接确定)n事后测试事后测试(a posteriori testing)n收集此算法的实际执行时间和占用空间的统计收集此算法的实际执行时间和占用空间的统计资料资料第13页,本讲稿共33页例例3:频率计数例子频率计数例子n考虑语句考虑语句xx+y在下面三个程序段
11、中的频率计数在下面三个程序段中的频率计数beginxx+yendFC:1beginfor i1 to n doxx+yrepeatEndFC:nbeginfor i1 to n do for j1 to n doxx+y repeatRepeatEndFC:n2第14页,本讲稿共33页计算时间的渐进估计表示计算时间的渐进估计表示n定义定义1.1 如果存在两个正常数如果存在两个正常数c和和n0,对于所有的,对于所有的nn0,有,有|f(n)|c|g(n)|则记作:则记作:f(n)=O(g(n)n因此,当说一个算法具有因此,当说一个算法具有O(g(n)的计算时间时,指的计算时间时,指的就是如果此算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 算法 分析 设计 优秀 课件
限制150内