首页 > 编程知识 正文

C语言有什么算法,c语言中算法的五种特性

时间:2023-05-05 12:47:23 阅读:205432 作者:358

一、算法的概念
对算法最通俗易懂的说法是:解决问题的方法和步骤

一个程序主要包块两个方面的信息:

(1)数据:在程序中要用到那些数据,以及这些数据的类型和数据的组成形式。

(2)算法:解决某个问题所选用的方法,以及用该方法解决问题的步骤。

而算法要解决的不仅仅是“数值计算”问题,更多的是解决“非数值运算问题”;

(1)数值运算: 对于数值运算往往有现成的模型,因为人们对数值运算研究比较深入,算法比较成熟,几乎所用数值运算都可以找到问题解决方法。问题:加减乘除、判断闰年、求方程的根……

(2)非数值运算: 非数值运算的种类繁多,要求各异,难以做到全部都有现成的答案,因此只有一些典型的非数值运算(例如排序算法、查找搜索算法等)有现成的、成熟的算法可供使用。非数值运算最常见的就是用于事务管理领域,如:图书检索、学生电子信息档案、人事管理和行车调查管理……

二、算法的特征
1.有穷性:一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。 一个算法应包括有限的操作步骤,这里的有穷性意思是指“在合理的范围之内”,比如让计算机运算10000年才结束,那该计算就不能算有效的算法,究竟什么算是“合理限度”,由人们的常识和需要判读。

2.确定性:算法中的每一个步骤都应当是确定的,不能是含糊和模棱两可,使算法的执行者或阅读者都能明确其含义及如何执行 。例如“手举过头顶”,这个步骤就是不确定的,没有说明是右手、左手、还是双手举过头顶。

3.有效性(可行性): 算法中每一个步骤都应当能有效地执行,并得到确定的结果。 例如,若b=0,则执行a/b是不能有效执行的,因为分母不能为0。

4.有0个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息。 例如,求任意两个整数的最小值,则需要用键盘输入2个整数,然后才能输出最小值。当然,一个算法也可以没有输入,比如直接输出一行信息“Hello world!"。

5.有1个或多个输出:算法的目的就是为了求解,“解”就是输出,无输出的算法没有任何意义。 注意,算法的解,不仅仅是通过运算得到的数值,还可以是文字。

三、算法的表示方式
表示一个算法常用的方法有:自然语言、传统流程图、结构化流程图(N-S流程图)、伪代码、计算机语言等,重点是用计算机语言表示算法。

用计算机语言(C语言等)表示算法必须严格遵循所用的语言的语法规则,在前面写的最简单的程序(Hello world!及详解)文章中就介绍了C语言最简单程序,以及C语言的一些最基本语法规则。
四、结构化程序设计方法

结构化程序设计方法的基本思路:把一个复杂问题过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。

得到结构化的程序一般包括以下4个步骤:
(1)自顶而下
(2)逐步细化

自上而下、逐步细化:将问题求解由抽象逐步具体化的过程。(类似写文章时拟提纲)

(3)模块化设计:将程序模块,分成若干个子模块(一般不超过50行),划分子模块时要注意模块的独立性(每一个模块完成一项功能)
(4)结构化编码:将以设计好的算法用计算机语言来表示(结构化语言:C语言、Visual Basic等)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。