描述算法的常用方法

描述算法的常用方法,第1张

1.什么是算法

从字面上来说,算法也袜兆就是用于计算的方法。是用来解决某些问题的方法。通过这个方法,可以达到想要的计算结果缓迅。它就像我们小时候学些的一些数学公式和解题步骤。

算法,一般有5个特征:

有穷性:

算法的执行步骤、时间、都是有限的。不会无休止的一直执行下去。

确切性:

算法的每一步都必须有明确的定义和描述。

输入:

一个算法应该有相应的输入条件,就像我们小时候做的应用题,已知什么什么。来求某个结果,已知部分便是输入条件。

输出:

算法必须有明确的结果输出。没有结果,那这个算法是没有任何意义的。

可行性:

算法的步骤必须是可行的,无法执行的则没有意义,也解决不了任何问题

2.算法的分扰好此类

按照算法的应用来分:算法可以分为基本算法、几何算法、加密/解密算法、查找算法、图标数据分析算法等。

按照算法的思路来分:算法可以分为递推算法、递归算法、穷举算法、分治算法等。

下面,我们就来讲我们的重点之一:也就是算法思想:

3.常用算法思想

穷举算法思想

递推算法思想

递归算法思想

分治算法思想

概率算法思想

不对,可以描述算法

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 (x>y) m=xelse m=yS2.2:if (m>z) m=melse m=zS2.3:return(m)⑤很容易用C语言写出函数max3()。[例2.20]:用C语言表示求5!的算法 [例2.21]:用C语言表示求下列级数的算法 结构化程序设计方法


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12385268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存