数据结构算法性能分析与量.pptx
《数据结构算法性能分析与量.pptx》由会员分享,可在线阅读,更多相关《数据结构算法性能分析与量.pptx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1知识回顾将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。算法描述:1.令k=22.当k不大于n时2.1 如果这个质数恰等于n,输出k,结束2.2 如果nk,但n能被k整除,则输出k,并修改n的值(n=n/k),重复执行2.1。2.3 如果n不能被k整除,则用k+1作为k的值,重复执行2.1 (演示程序)如何衡量一个算法的性能第1页/共21页2 21.5 算法性能分析与度量 算法的性能标准算法的性能标准 算法的后期测试算法的后期测试 算法的事前估计算法的事前估计第2页/共21页3 31.5.1算法的性能标准 正确性正确性 (Correctness)算法应满足具体问题的需
2、求。可使用性(可使用性(usabilityusability)算法设计必须符合抽象数据类型和模块化要求,每个算法只完成一个功能 可读性可读性(Readability)算法应该容易阅读。以有利于阅读者对程序的理解。效率效率 效率指的是算法执行的时间和空间利用率。通常这两者与问题的规模有关。健壮性健壮性 (Robustness)算法应具有容错处理的功能。当输入非法数据时,算法应对其作出反应,而不应产生莫名其妙的输出结果。简单性(简单性(simplicitysimplicity)指算法所采用的数据结构和方法的简单程度。算法的简单性便于用户编写、分析和调试1.5 算法性能分析与度量第3页/共21页4
3、41.5.2算法的后期测试事后测试要求在算法执行后通过算法执行的时间和实际占用空间的统计资料来分析。事后分析要求在算法中的某些部位插装时间函数time(),测定算法完成某一功能测定算法完成某一功能所花费时间。所花费时间。1.5 算法性能分析与度量第4页/共21页5 51.5.2 1.5.2 算法的后期测试算法的后期测试例如顺序搜索例如顺序搜索(Sequenial Search)(Sequenial Search)算法算法1.5 算法性能分析与度量int seqsearch(int a,int n,int x)int seqsearch(int a,int n,int x)/在在a0,an-1a
4、0,an-1中搜索与给定值中搜索与给定值/x/x相等的元素,函数返回其位置相等的元素,函数返回其位置.int i=0;int i=0;while(i n&ai!=x)while(i n&ai!=x)i+;i+;if(i=n)return-1;if(i=n)return-1;return i;return i;第5页/共21页6 6 1.5.2 1.5.2 算法的后期测试算法的后期测试插装插装 time()time()的计时程序的计时程序void TimeSearch()void TimeSearch()int a1001,n;int a1001,n;double start,stop;doub
5、le start,stop;for(int j=0;j=1000;j+)for(int j=0;jn;cinn;time(time(&start);start);int k=seqsearch(a,n,x);int k=seqsearch(a,n,x);time(time(&stop);stop);double runTime=stop-start;double runTime=stop-start;cout n runTime endl;cout n runTime endl;1.5 算法性能分析与度量事实上,算法运行时间要事实上,算法运行时间要受输入规模、利用编译程受输入规模、利用编译程序
6、生成的目标代码的质量、序生成的目标代码的质量、计算机程序指令系统的品计算机程序指令系统的品质和速度等制约。质和速度等制约。第6页/共21页7 71.5.3算法的事前估计主要包括时间复杂性和空间复杂性的分析:问题的规模:如:矩阵的阶数、图的结点个数、被分类序列的正整数个数等。空间复杂性:算法所需空间和问题规模的函数。记为 S(n)。当 n 时的时间复杂性,称为渐进空间复杂性。时间复杂性:算法所需时间和问题规模的函数,记为 T(n)。当 n 时的时间复杂性,称为渐进时间复杂性。1.5 算法性能分析与度量第7页/共21页8 8空间复杂度度量 存储空间的固定部分程序指令代码的空间,常数、简单变量、定长
7、成分(如数组元素、结构成分、对象的数据成员等)变量所占空间 可变部分尺寸与实例特性有关的成分变量所占空间、引用变量所占空间、递归栈所用空间、通过new和delete命令动态使用空间1.5 算法性能分析与度量第8页/共21页9 9时间复杂度度量 编译时间 运行时间uu程序步F语法上或语义上有意义的一段指令序列;而且这段指令序列的执行时间与问题规模无关;F例如:声明语句:程序步数为0;表达式:程序步数为11.5 算法性能分析与度量第9页/共21页1.5.4 算法的渐进分析1.1.渐进的时间复杂度例例 求两个求两个n阶方阵的乘积阶方阵的乘积C=A Bvoid MatrixMultiply(int A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 性能 分析
限制150内