下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三节算法的描述与分析一、算法的描述算法:是对问题求解步骤的一种描述。算法是由若干条指令组成的有穷序列,其中每条指令表示一个或多个操作。算法还必须满足以下五个准则:(1)输入。算法开始前必须给算法中用到的变量初始化,一个算法的输入可以包含零个或多个数据。(2)输出。算法至少有一个或多个输出。(3)有穷性。算法中每一条指令的执行次数都是有限的,而且每一步都在有穷时间内完成,即算法必须在执行有限步后结束。(4)确定性。算法中每一条指令的含义都必须明确,无二义性。(5)可行性。算法是可行的,即算法中描述的操作都可以通过有限次的基本运算来实现。本教材都采用类C语言描述算法。真题选解(例题·单选题)算法指的是()A.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列隐藏答案【答案】D【解析】是对问题求解步骤的一种描述。算法是由若干条指令组成的有穷序列,它必须满足有穷性,即在执行有限步骤以后必须结束。二、算法分析例:百钱百鸡问题。100个钱买100只鸡,其中公鸡5钱1只,母鸡3钱1只,小鸡1钱3只,求公鸡、母鸡、小鸡各买多少只?分析:设公鸡、母鸡、小鸡分别买a、b、c只,则//函数返回值为满足问题的解数,g[],m[],s[]分别存放不同解的公鸡、母鸡和小鸡数intchickenquestion(intg[],intm[],ints[]){inta,b,c,k=0;for(a=0;a<=100;a++)for(b=0;b<=100;b++)for(c=0;c<=100;c++)if((a+b+c==100)&&(5*a+3*b+c/3==100)&&(c%3==0)){g[k]=a;m[k]=b;s[k]=c;k=k+1;}returnk;}算法需要执行101×101×101约100万次对上述算法是完全可以改进的。intchickenquestion(intg[],intm[],ints[]){inta,b,c,k=0;for(a=0;a<=20;a++)for(b=0;b<=33;b++){c=100-a-b;if((5*a+3*b+c/3==100)&&(c%3==0)){g[k]=a;m[k]=b;s[k]=c;k=k+1;}}returnk;}算法需要执行21×34=714次。因此,设计一个好的算法,对提高程序的执行效率是至关重要的。1、评价算法的指标:(1)算法的正确性,是指对于一切合法的输入数据,该算法经过有限时间的执行都能得到正确的结果。(2)执行算法所耗费的时间,即时间复杂性。(3)执行算法所耗费的存储空间,主要是辅助空间,即空间复杂性。(4)算法应易于理解、易于编程,易于调试等,即可读性和可操作性。2、算法的时间复杂度时间复杂度:是某个算法的时间耗费,它是该算法所求解问题规模n的函数。记作T(n)=O(f(n))。例:求下面程序段的算法时间复杂度。x=0;for(i=2;i<=n;i++)for(j=2;j<=i-l;j++)x=x+1;算法时间复杂度只需要求出它关于n的增长率或阶即可。上述语句x=x+l执行次数关于n的增长率为n2,所以该程序段的算法时间复杂度为O(n2)。如果一个算法的执行时间是一个与"问题规模"无关的常数,即使是一个较大的常数,该算法的时间复杂度都为常数阶,记作T(n)=O(1)例:y=10000;while(y>0)y--;该程序段的时间复杂度就是O(1)时间复杂度按数量级递增排列依次为:常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n^2)、立方阶O(n^3)、……k次方阶O(n^k)、指数阶O(2^n)。真题选解(例题·填空题)1、下面程序段的时间复杂度为___________。sum=1;for(i=0;sum<n;i++)sum+=1;隐藏答案【解析】循环执行n次,所以算法的时间复杂度为O(n)。【答案】O(n)(例题·填空题)2、估算算法时间复杂度时考虑的问题规模通常是指算法求解问题的_________。隐藏答案【答案】输入量【解析】时间复杂度是某个算法的时间耗费,它是该算法所求解问题规模n的函数。将算法所要求解问题的输入量称为问题的规模。(例题·单选题)3、若一个算法的时间复杂度用T(n)表示,其中n的含义是()A.问题规模B.语句条数C.循环层数D.函数数量隐藏答案【答案】A【解析】时间复杂度是某个算法的时间耗费,它是该算法所求解问题规模n的函数。记作T(n)=O(f(n))。3、空间复杂度:是某个算法的空间耗费,它是该算法所求解问题规模n的函数。4、算法复杂度:算法的时间复杂度和空间复杂度合称算法复杂度。当前讲授本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班车餐饮服务原材料采购方案
- 特种设备操作规程与责任制度
- 西藏自治区建筑行业劳动合同范本
- 建筑项目沟通管理制度
- 商场消防安全大门施工方案
- 2024年度环保设备租赁与污染处理服务合同
- 2024年度建筑工程采购混凝土合同范本
- 郑州大学《汉字书写学》2022-2023学年第一学期期末试卷
- 郑州大学《管理定量分析》2021-2022学年第一学期期末试卷
- 2024年度影视发行合同:电影海外市场推广与销售
- 云南省昆明市五华区2022-2023学年九年级上学期期中检测物理试题
- 人教版四年级上册美术教案设计-表格
- 2024大连机场招聘109人高频500题难、易错点模拟试题附带答案详解
- 奢侈品销售合同范文
- 13《猫 》 第一课时 公开课一等奖创新教案
- JGJ46-2005施工现场临时用电安全技术规范专题理论考试试题
- 风电场道路及风机基础工程冬季施工方案
- 难点详解人教版九年级化学上册第一单元走进化学世界专题训练练习题(含答案详解版)
- 财务管理委托代理会计服务 投标文件(技术方案)
- 七年级数学人教版(上册)第9课时 分段计费问题
- 2024年秋新北师大版七年级上册数学教学课件 6.1 丰富的数据世界
评论
0/150
提交评论