- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序是指令步骤的集合。 C语言程序。如: #include stdio.h void main( ) { printf (This is a C program.\n); } 说明: main-主函数名, void-函数类型 每个C程序必须有一个主函数main { }是函数开始和结束的标志,不可省 每个C语句以分号结束 使用标准库函数时应在程序开头一行写: #include stdio.h #include stdio.hvoid main( ) /* 主函数*/{ int max(int x,int y); / 对被调用函数max的声明 */ int a, b, c;/*定义变量a、b、c */ scanf(″%d,%d″,a,b); /*输入变量a和b的值*/ c=max(a,b); /*调用max函数,将得到的值赋给c */ printf(″max=%d\\n″,c); } int max(int x, int y) { int z; if (xy) z=x;else z=y; return (z); } 说明:本程序包括main和被调用函数max两个函数。max函数的作用是将x和y中较大者的值赋给变量z。return语句将z的值返回给主调函数main。 C语言提供了以下一些数据类型。数据类型 构造类型 指针类型 空类型(无值类型) void 枚举类型 enum 数组类型 结构类型 struct 联合类型 union 基本类型 整型(16) int 字符型(8) char 实型(浮点型) 单精度实型(32)float 双精度实型(64)double 评价一个好的算法有以下几个标准 ① 正确性(Correctness ): 算法应满足具体问题的需求。 ② 可读性(Readability): 算法应容易供人阅读和交流。可读性好的算法有助于对算法的理解和修改。 ③ 健壮性(Robustness): 算法应具有容错处理。当输入非法或错误数据时,算法应能适当地作出反应或进行处理,而不会产生莫名其妙的输出结果。 通用性(Generality): 算法应具有一般性 ,即算法的处理结果对于一般的数据集合都成立。 效率与存储量需求: 效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般地,这两者与问题的规模有关。算法执行时间需通过依据该算法编制的程序在计算机上运行所消耗的时间来度量。其方法通常有两种: 事后统计:计算机内部进行执行时间和实际占用空间的统计。问题:必须先运行依据算法编制的程序;依赖软硬件环境,容易掩盖算法本身的优劣;没有实际价值。 事前分析:求出该算法的一个时间界限函数。 与此相关的因素有: 依据算法选用何种策略; 问题的规模; 程序设计的语言; 编译程序所产生的机器代码的质量; 机器执行指令的速度;撇开软硬件等有关部门因素,可以认为一个特定算法“运行工作量”的大小,只依赖于问题的规模(通常用n表示),或者说,它是问题规模的函数。算法中基本操作重复执行的次数是问题规模n的某个函数,其时间量度记作 T(n)=O(f(n)),称作算法的渐近时间复杂度(Asymptotic Time complexity),简称时间复杂度。一般地,常用最深层循环内的语句中的原操作的执行频度(重复执行的次数)来表示。 表示时间复杂度的阶有:O(1) :常量时间阶O (n):线性时间阶O(㏒n) :对数时间阶 O(n㏒n) :线性对数时间阶O (nk): k≥2 ,k次方时间阶例1 两个n阶方阵的乘法for(i=1,i=n; ++i)for(j=1; j=n; ++j){ c[i][j]=0 ;for(k=1; k=n; ++k)c[i][j]+=a[i][k]*b[k][j] ; } 由于是一个三重循环,每个循环从1到n,则总次数为: n×n×n=n3 时间复杂度为T(n)=O(n3) 例2 {++x; s=0 ;}将x自增看成是基本操作,则语句频度为1,即时间复杂度为O(1) 。 如果将s=0也看成是基本操作,则语句频度为2,其时间复杂度仍为O(1),即常量阶。 例3 for(i=1; i=n; ++i){ ++x; s+=x ; } 语句频度为:2n,其时间复杂度为:O(n) ,即为线性阶。 例4 for(i=1; i=n; ++i)for(j=1; j=n; ++j){ ++x; s+=x ; } 语句频度为:2n2 ,其时间复杂度为:O(n2) ,即为平方阶。 定理:若A(n)=a m n m +a m-1 n m-1 +…+a1n+a0是一个m次多项式,则A(n)
您可能关注的文档
最近下载
- 制药工程制图习题集(第二版)于颖_课后习题答案解析.pdf
- 《建设工程施工管理》PPT课件.pptx VIP
- 义务教育版(2024)五年级全一册信息科技 第6课 判断选择用分支 教案.docx VIP
- 个人简历表格下载word(最新).pdf VIP
- Flexsim中文使用手册.pdf VIP
- 学习解读《水利水电建设工程验收规程》SLT223-2025课件.pptx
- 第八节可燃粉尘的爆炸.ppt VIP
- 视琦多媒体视觉训练系统使用说明书.doc VIP
- GB T 28749-2012_企业能量平衡网络图绘制方法_高清版_可检索.pdf
- 重庆秀山县公安局招聘警务辅助人员笔试真题2023(含答案).pdf VIP
文档评论(0)