算法基本概念.ppt
上传人:天马****23 上传时间:2024-09-10 格式:PPT 页数:23 大小:377KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

算法基本概念.ppt

算法基本概念.ppt

预览

免费试读已结束,剩余 13 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

9.2算法基本概念算法(algorithm)是对特定问题求解步骤的一种描述,是一组有序的动作。2.算法的基本特征算法的性能评价一般从时间复杂度和空间复杂度来衡量。一个算法除了要考虑其正确性,还要考虑算法的效率,通常采用时间复杂度和空间复杂度来衡量算法效率。时间复杂度的作用是度量算法执行的时间长短;而空间复杂度的作用是度量算法所需存储空间的大小。算法的时间复杂度:为便于比较解决同一问题的不同算法,通常以算法中基本操作重复执行的频度作为算法的时间度量标准。记作:T(n)=O(f(n))其中,T(n)是问题规模的函数,O表示数量级。一般情况下,随着n的增大,T(n)的增长较慢的算法为最优算法。随着规模n增大,算法执行时间的增长率和f(n)的增长率成正比,f(n)越小,算法的时间复杂度越低,算法的效率越高。算法的空间复杂度:算法执行时存储空间需求的度量。S(n)=O(f(n))其中n为问题的规模,S(n)表示空间复杂度。通常只要分析算法在实现时所需的辅助空间单元个数即可。9.2.2算法的描述方法1.自然语言2.专用工具程序流程图表示:打印80分以上的学生成绩程序任意转向的示例:2)N–S流程图程序三种基本结构的N–S流程图Raptor是一种基于流程图的可视化程序设计开发环境。使用Raptor的程序和算法,可以直接转换为c++、c#、Java等高级语言。为程序和算法初学者提供了一条平缓、自然的阶梯。3.伪代码1.穷举法(枚举法)特点:算法简单,容易理解,运算量大。基本思想:根据题目的部分条件确定答案的大致范围,然后在此范围内对所有可能的情况逐一验证,直到所有情况均通过验证。若某个情况符合题目条件,则为本题的一个答案;若全部情况验证完后均不符合题目的条件,则问题无解。如:百元买百鸡问题。假定小鸡每只0.5元,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,问共有几种购鸡方案?根据题目,设母鸡、公鸡、小鸡各为x,y,z只,列出方程为:x+y+z=100,3x+2y+0.5z=100利用穷举法,将各种可能的组合一一测试,输出符合条件的组合。即在各个变量的取值范围内不断变化x,y,z的值,穷举x,y,z全部可能的组合,若满足方程组则是一组解。#include"stdio.h"main(){intx,y,z;printf("母鸡公鸡小鸡");for(x=0;x<=33;x++)for(y=0;y<=50;y++){z=100-x-y;if((3*x+2*y+0.5*z)==100)printf("\n%-6d%-6d%-6d",x,y,z);}}#include"stdio.h"main(){inti,x;x=1;printf("第7天的桃子数为:1只\n");for(i=6;i>=1;i--){x=(x+1)*2;printf("第%d天的桃子数为:%d只",i,x);printf("\n");}}3.递归法将问题逐层分解,将复杂问题归结为一些最简单的问题进行处理,然后再沿着分解的逆过程逐步进行综合。如根据求n!的定义n!=n(n-1)!,进行求解。该定义可给出具体形式如下:1(n=0,1)n!=n(n-1)!(n>1)从求n!逐层递推为求(n-1)!,求(n-2)!...最后成为求1!这个简单问题,再沿着原来分解地逆过程逐层相乘进行回归,得出结果。小结