2第二章 算法效率分析基础.pptx
《2第二章 算法效率分析基础.pptx》由会员分享,可在线阅读,更多相关《2第二章 算法效率分析基础.pptx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法分析与设计 Analysis and Design of Computer Algorithms 第二章 算法效率分析基础杨春明西南科学技大学计算机学院Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 2算法效率分析基础l算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。Time is Important不是所有能计算的都有价值,不是所有有价值的都能被计算不是所有能计
2、算的都有价值,不是所有有价值的都能被计算 阿尔伯特.爱因斯坦Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 3教学内容l算法效率分析框架l算法效率的表示符号l非递归算法的效率分析l递归算法的效率分析l算法的经验分析l要求掌握算法中近似时间的表示、非递归、递归算法的效率分析方法,了解算法的经验分析Analysis and Design of Computer AlgorithmsA
3、nalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 4分析框架输入规模度量l输入规模度量算法的时间效率和空间效率都用输入规模的函数进行度量。对于所有的算法,对于规模更大的输入都需要运行更长的时间。经常使用一个输入规模n为参数的函数来研究算法的效率。选择输入规模的合适量度,要受到所讨论算法的操作细节影响。Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms
4、 School of Computer Science and Technology,SWUST 5分析框架运行时间的度量单位l运行时间的度量单位用算法的基本操作(算法中最重要的操作)基本操作(算法中最重要的操作)的执行次数来度量算法的时间效率。基本操作基本操作通常是算法最内层循环中最费时的操作。算法运行时间的估计:T(n)copC(n)n是该算法的输入规模cop是特定计算机上一个算法基本操作的执行时间C(n)是该算法需要执行的基本操作的次数Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Alg
5、orithms School of Computer Science and Technology,SWUST 6分析框架增长次数l增长次数小规模输入在运行时间上的差别不足以将高效的算法和低效的算法区分开来。一个需要指数级操作次数的算法只能用来解决规模非常小的问题一个需要指数级操作次数的算法只能用来解决规模非常小的问题Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 7分析框架算法
6、的最优、最差和平均效率l算法的最优、最差和平均效率最差效率最差效率是指在输入规模为n时,算法在最坏情况下的效率。最优效率最优效率是指在输入规模为n是,算法在最优情况下的效率。平均效率平均效率是指在“典型”或“随机”输入的情况下,算法具有的行为(效率)。摊销效率摊销效率是指对于同样的数据结构执行多次操作,然后分摊到每一次上。Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 8渐进符号
7、l算法效率的主要指标是基本操作次数的增长增长次数次数。l为了对这些增长次数进行比较和归类,计算机科学家们使用了3种符号:O(读“O”):上界(读”omega”):下界(读”theta”):近似Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 9符号Ol定义1 对于足够大的n,t(n)的上界由g(n)的常数倍来确定,即:l记为t(n)O(g(n)t(n)cg(n),c为常数n O(n
8、2)100n+5 O(n2)n(n-1)/2 O(n2)Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 10符号l定义2 对于足够大的n,t(n)的下界由g(n)的常数倍来确定,即:l记为t(n)(g(n)t(n)cg(n),c为常数n3(n2)n(n+1)(n2)4n2+5 (n2)Analysis and Design of Computer AlgorithmsAnalys
9、is and Design of Computer Algorithms School of Computer Science and Technology,SWUST 11符号l定义3 对于足够大的n,t(n)的上界和下界由g(n)的常数倍来确定,即:l记为t(n)(g(n)c2g(n)t(n)c1g(n),c1,c2为常数n2+3n+2(n2)n(n-1)/2(n2)4n2+5 (n2)Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer
10、 Science and Technology,SWUST 12渐进符号的有用特性l定理 如果t1(n)O(g1(n)并且t2(n)O(g2(n),则 t1(n)+t2(n)O(max(g1(n),g2(n)l对于符号和,该定理也成立。l该定理表明:当算法由两个连续执行部分组成时,该算法的整体效率由具有较大增长次数的那部分所决定。Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 1
11、3利用极限比较增长次数前两种情况意味着t(n)O(g(n)后两种情况意味着t(n)(g(n)第二种情况意味着t(n)(g(n)Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 14基本的效率类型常量(1)、对数(logn)、线性(n)、nlogn、平方(n2)、立方(n3)、指数(2n)、阶乘(n!)Analysis and Design of Computer Algorithm
12、sAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 15非递归算法的数学分析lExample 1:讨论下面这个算法(从n个元素中查找最大元素问题)的效率。算法算法 MaxElement(A0.n-1/求给定数组中的最大元素/输入:实数数组A0.n-1/输出:A中的最大元素maxval A0for i 1 to n-1 do if Ai maxval maxval Aireturn maxval 考虑:1.循环中的操作有比较比较和赋值赋值,取哪一个作为基本操作?2.
13、输入规模是多少?基本操作为:比较运算输入规模就是数组长度n算法的效率为:Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 16分析非递归算法效率的通用方案1.决定用那些参数作为输入规模的度量。2.找出算法的基本操作。3.检查基本操作的执行次数是否只依赖输入规模。4.建立一个算法基本操作执行次数的求和表达式。5.利用求和运算的标准公式和法则来建立一个操作次数的闭合公式,或者至少确定它
14、的增长次数。Analysis and Design of Computer AlgorithmsAnalysis and Design of Computer Algorithms School of Computer Science and Technology,SWUST 17Example 考虑下面算法的效率lExample 2 元素唯一性问题元素唯一性问题算法算法 UniqueElements(A0.n-1)/验证给定数组的元素是否全部唯一/输入:实数数组A0.n-1/输出:如果唯一,返回True,否则Falsefor i0 to n-2 do for ji+1 to n-1 do i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2第二章 算法效率分析基础 第二 算法 效率 分析 基础
限制150内