大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
算法描述(Algorithm Description )是指对设计出的算法,用一种方式进行详细的描述,以便与人交流。算法可采用多种描述语言来描述,各种描述语言在对问题的描述能力方面存在一定的差异,可以使用自然语言、伪代码,也可使用程序流程图,但描述的结果必须满足算法的五个特征。
在长沙等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站设计 网站设计制作按需搭建网站,公司网站建设,企业网站建设,高端网站设计,全网营销推广,外贸营销网站建设,长沙网站建设费用合理。
算法可采用多种描述语言来描述,例如,自然语言、计算机语言或某些伪语言。各种描述语言在对问题的描述能力方面存在一定的差异。例如,自然语言较为灵活,但不够严谨。而计算机语言虽然严谨,但由于语法方面的限制,使得灵活性不足。
因此,许多教材中采用的是以一种计算机语言为基础,适当添加某些功能或放宽某些限制而得到的一种类语言。这些类语言既具有计算机语言的严谨性,又具有灵活性,同时也容易上机实现,因而被广泛接受。目前,许多“数据结构”教材采用类PASCAL语言、类C++或类C语言作为算法描述语言。
扩展资料:
算法的特征
1、输入:一个算法必须有零个或以上输入量。
2、输出:一个算法应有一个或以上输出量,输出量是算法计算的结果。
3、明确性:算法的描述必须无歧义,以保证算法的实际执行结果是精确地符合要求或期望,通常要求实际运行结果是确定的。
4、有限性:依据图灵的定义,一个算法是能够被任何图灵完备系统模拟的一串运算,而图灵机器只有有限个状态、有限个输入符号和有限个转移函数(指令)。而一些定义更规定算法必须在有限个步骤内完成任务。
5、有效性:又称可行性。能够实现,算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
参考资料来源:百度百科-算法描述
C语言中一个函数(function)是一个可以从程序其它地方调用执行的语句块。
1、通过使用函数(functions)我们可以把我们的程序以更模块化的形式组织起来,从而利用C语言所支持的结构化程序设计。
2、从数学角度,函数即集合A和集合B之间的映射关系。实际上计算机中的函数概念也是源于此,因此,一般函数,都有形参和返回值。
3、从计算机组成原理的角度来看,函数即是一个小型的计算机系统,依据冯诺伊曼的“存储程序原理”,每一个计算机系统包含:输入系统、输出系统、运算器以及控制器,实际上对于C语言中的函数来说,它是“存储程序原理”的软实现,其中形参、实参这是输入系统,返回值是输出系统,函数体中的运算符,比如+、-、*、/四则运算即为运算器,而逻辑运算符以及if、while等控制语句便是一个控制器。
有很多种形式,比如用伪代码来叙述你的编程思想.
主要包含内部逻辑,数据流处理.
c语言中的算法是指:一系列解决问题的清晰指令,用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。通俗说就是解决问题的方法和步骤。
描述算法的例子:
问题:从上海去到北京。
其中的算法:做汽车、做飞机、或者徒步。
问题:喝茶。
其中的算法:先找到茶叶,再烧一壶开水,然后将茶叶放到杯子里,将开水倒入杯中,等茶叶泡好。
问题:开车。
其中的算法:首先要打开车门,驾驶员坐好,插上车钥匙,发动汽车。
算法的五个重要的特征:有穷性(Finiteness)、确切性(Definiteness)、输入项(Input)、输出项(Output)、可行性(Effectiveness)。
算法的时间复杂度:算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做。T(n)=Ο(f(n))因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。
算法的空间复杂度:算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。可以从正确性、可读性、健壮性(容错性)来分析。
不对,可以描述算法
2 讲 算法及用C语言描述算法 ; 通过介绍算法的性质、组成要素和举例,引入流程图和N-S图来描述算法。进一步,用C语句来实现算法。 ;算 法;2 简单算法举例;算法表示如下:S1:2000→yearS2:若year不能被4整除,则输出year不是闰年,转S6S3:year能被4整除,不能被100整除,则输出year是闰年,转S6S4: year能被100整除,又能被400整除,则输出year是闰年;否则输出不是闰年。然后转S6S5:输出year不是闰年S6:year+1→yearS7:若year≤2500,转S2;否则算法停止。注意:有的问题对判断的先后次序无关;但有的问题不能任意颠倒判断的先后顺序。;例2.4 求S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1) ×signS5:term=sign ×(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若deno≤100返回S4;否则算法结束。;例2.5 判断一个大于等于3的正整数是否为素数。素数:只能被1和其本身整除的数。S1:输入n的值S2:i=2(i作为除数)S3:n被i除,得余数rS4:若r=0,不是素数,算法结束;否则执行S5S5:i+1→iS6:若i≤n-1,返回S3;否则是素数,结束。实际上只需判断n能否被2~ 之间的整数整除即可。所以S6可改为:S6:若i≤ ,返回S3;否则是素数,结束。;3. 算法的组成要素 操作。如算术运算、逻辑运算、关系运算、函数运算等。 控制结构。用于控制组成算法的各操作的执行顺序。结构化程序设计中,顺序、选择和循环3种基本结构能组成任何结构的算法。;2)选择结构(又称选取结构、分支结构);3)循环结构(又称重复结构) 分为当型循环结构和直到型循环结构。;;5. 伪代码与逐步细化的程序设计方法 伪代码(pseudo code):介于自然语言与计算机语言之间的文字符号算法描述工具。一般步骤为:1) 自顶向下,将问题描述为几个子问题或子功能,不要试图一下子就触及问题解法的细节。2) 在子问题一级描述算法。;用C语句描述算法;例. 3个数中取大数—逐步细化法设计程序; ③写主函数的条件已经成熟 ;④仍按逐步细化的方法设计max3()的算法。设三个参数为x,y,z。 S2.1:从x, y中取出大数送m S2.2:从m,z中取出大数送m S2.3:??回m给主调函数进一步细化得: S2.1:if (xy) m=x; else m=y; S2.2:if (mz) m=m; else m=z; S2.3:return(m);;⑤很容易用C语言写出函数max3()。;[例2.20]:用C语言表示求5!的算法 ;[例2.21]:用C语言表示求下列级数的算法 ;结构化程序设计方法