算法分析与设计绪论ppt课件.ppt
《算法分析与设计绪论ppt课件.ppt》由会员分享,可在线阅读,更多相关《算法分析与设计绪论ppt课件.ppt(68页珍藏版)》请在三一办公上搜索。
1、算法设计与分析,主讲:李杰安徽师范大学数学计算机科学学院E-mail:,学习目标,掌握算法设计与分析的基本理论;掌握进行算法设计与分析的基本方法(时间、空间复杂度分析,算法正确性的证明);掌握计算机领域中常用的非数值计算方法,并学会用这些算法解决实际问题。,课程要求,教学方式:理论(42学时)+实践(18学时)考核方式:考试(70%)+实验作业(30%)课程学分:3学分先修课程:C语言程序设计离散数学数据结构,教材和教参,选用教材:计算机算法基础(第三版)余祥宣,崔国华,邹海明 华中科技大学出版社参考书目:算法引论 张益新,沈雁 国防科技大学出版社算法设计与分析 周培德 机械工业出版社,内容安
2、排,第1章 数学预备知识第2章 导引与基本数据结构第3章 递归算法第4章 分治法第5章 贪心方法第6章 动态规划第7章 检索与周游第8章 回溯法第9章 分枝-限界第10章 NP-问题第11章 并行算法,第一章 导引,-计算机算法是计算机科学和计算机应用的核心。-数据结构+算法=程序-算法:计算机软件的灵魂1.什么是算法?2.如何分析算法?3.如何表示算法?4.基本数据结构,1.什么是算法,算法,数值计算方法(求解数值问题,插值计算、数值积分等),非数值计算方法(求解非数值问题,主要进行判断比较),对算法(algorithm)一词给出精确的定义是很难的。算法笼统的定义:求解一确定类问题的任意一种
3、特殊方法。非形式描述:算法就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。,什么是算法(续),算法是任何定义好了的计算程式,它取某些值或值的集合作为输入,并产生某些值或值的集合作为输出。因此,算法是将输入转化为输出的一系列计算步骤。计算机科学中,算法已逐渐成了用计算机解决一类问题的精确、有效方法的代名词。,例 求两个正整数m,n的最大公因子,算法1-1 欧几里得算法输入:正整数m和n输出:m和n的最大公因子第一步:求余数。rm%n第二步:判断r=0?若是,终止(n为答案),否则,转第三步。第三步:互换,mn,nr,返回第一步。,例 求两个正整数最大公因子的一个实例,假设 m=21
4、 和 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;第二步:r 等于0,算法结束,3即为21和45的最大公因子。,算法的五个重要特性,确定性每一种运算必须要有确切的定义,无二义性能行性运算都是基本运算,原理上能在有限时间内完成输入有0个或多个输入输出一个或多个输出有穷性在执行了有穷步运算后终止,算法的五个重要特性,1)确定性 算
5、法的每种运算必须要有确切的定义,不能有二义性。例:不符合确定性的运算5/0 将6或7与x相加未赋值变量参与运算,2)能行性 算法中有待实现的运算都是基本的运算,原理上每种运算都能由人用纸和笔在有限的时间内完成。例:整数的算术运算是“能行”的;实数的算术运算是“不能行”的。,算法的五个重要特性,3)输入 每个算法有0个或多个输入。这些输入是在算法开始之前给出的量,取自于特定的对象集合定义域(或值域),4)输出 一个算法产生一个或多个输出,这些输出是同输入有某种特定关系的量。,算法的五个重要特性,5)有穷性 一个算法总是在执行了有穷步的运算之后终止。计算过程:只满足确定性、能行性、输入、输出四个特
6、性但不一定能终止的一组规则。准确理解算法和计算过程的区别:不能终止的计算过程:操作系统 算法是“可以终止的计算过程”算法的时效性:只能把在相当有穷步内终止的算法投入到计算机上运行。,算法的五个重要特性,算法的特性,凡是算法,都必须满足以上五条特性。只满足前四条特性的一组规则不能称之为算法,只能叫做计算过程。操作系统就是计算过程的一个典型例子。设计操作系统的目的是为了控制作业的运行,当没有作业时,这一计算过程并不终止,而是处于等待状态,一直等到一个新的作业的进入。,算法和程序,一个算法可以用一个计算机程序来表示。任何一种程序设计语言都可以实现任何一个算法。算法的有穷性意味着不是所有的计算机程序都
7、是算法。,算法学习的五个内容,如何设计算法运用一些基本设计策略规划算法如何表示算法用恰当的方式表示算法如何确认算法算法正确性的证明(算法确认algorithm validation)如何分析算法通过时间和空间复杂度的分析,确定算法的优劣如何测试程序测试程序是否会产生错误的结果,算法学习将涉及5个方面的内容:1)设计算法:创造性的活动2)表示算法:思想的表示形式3)确认算法:证明算法的正确性程序的证明4)分析算法:算法时空特性分析5)测试程序:“调试只能指出有错误,而不能指出它们不存在错误”本课程集中于学习算法的设计与分析。通过学习,掌握计算机算法设计和分析基本策略与方法,为设计更复杂、更有效的
8、算法奠定基础,我们的主要任务,2.如何分析算法,算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。计算机模型的假设通用计算机模型:顺序计算机有足够的“内存”能在固定的时间内存取数据单元算法分析步骤:首先确定使用哪些运算以及执行这些运算所用的时间。(运算包括基本数值运算和一些更基本的任意长序列的运算)其次是要确定出能反映算法在各种情况下工作的数据集。(即要求我们编造出能产生最好、最坏和有代表性情况的数据配置,通过使用这些数据来运行算法,以更了解算法的性能),全面分析一个算法的两个阶段,事前分析(a prior analysis)求出该算法的一个时间限界函数(一些关于参数的函数)事前分析
9、只限于每条语句的频率计数(frequency count,该语句的执行次数,与所用的机器无关,且独立于程序设计语言,可由算法直接确定)事后测试(a posterior testing)收集此算法的实际执行时间和占用空间的统计资料,例 频率计数例子,考虑语句xx+y在下面三个程序段中的频率计数,beginxx+yendFC:1,beginfor i1 to n doxx+yrepeatEndFC:n,beginfor i1 to n do for j1 to n doxx+y repeatRepeatEndFC:n2,计算时间的渐进估计表示,定义1.1 如果存在两个正常数c和n0,对于所有的nn
10、0,有|f(n)|c|g(n)|则记作:f(n)=O(g(n)因此,当说一个算法具有O(g(n)的计算时间时,指的就是如果此算法用n值不变的同一类数据在某台机器上运行时,所用的时间总是小于|g(n)|的一个常数倍。g(n)是计算时间f(n)的一个上界函数,f(n)的数量级就是g(n),时间的渐进估计表示,定理1.1 若A(n)=amnm+a1n+a0是一个m次多项式,则A(n)=O(nm)。证明:取n0=1,当nn0时利用A(n)的定义和一个简单的不等式,有|A(n)|am|nm+|a1|n+|a0|(|am|+|am-1|/n+|a0|/nm)nm(|am|+|am-1|+|a0|)nm取c
11、=|am|+|am-1|+|a0|,定理得证。,时间的渐进估计表示,定理表明,变量n的固定阶数为m的任一多项式,与此多项式的最高阶nm同阶。因此,一个计算时间为m阶多项式的算法,其时间都可以用O(nm)来表示。例如,一个算法的数量级为c1nm1,c2nm2,cknmk的k个语句,则算法的数量级及计算时间就是c1nm1+c2nm2+cknmk=O(nm)其中m=maxmi|1 i k,算法的分类,从计算时间上可把算法分为两类多项式时间算法(polynomial time algorithm):可用多项式来对其计算时间限界的算法。以下六种计算时间的多项式时间算法是最为常见的O(1)O(logn)O
12、(n)O(nlogn)O(n2)O(n3)指数时间算法(exponential time algorithm):计算时间用指数函数限界的算法O(2n)O(n!)O(nn),对于问题输入长度n取不同值,各种不同的时间复杂性函数的算法,在机器上的运行所需时间如下所示:,计算时间函数,典型的计算时间函数曲线,效率比速度更重要,Rich Man,Smart Programmer,举例:效率比速度更重要,Computer A:109 instructions per second,running insertion sort.craftiest programmer codes insertion so
13、rt,requires 2n2 instructions.Computer B:107 instructions per second,running merge sort.an average programmer codes,requires 50n log n instructions.Computer A is 100 times faster than computer B.,举例:效率比速度更重要,To sort one million numbers,computer A takes:Computer B takes:Computer B runs 20 times faster
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 分析 设计 绪论 ppt 课件

链接地址:https://www.31ppt.com/p-5451748.html