C语言学习笔记:算法

广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。

 一个程序应包含两方面的内容:

(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure);

(2)对操作的描述。即操作步骤,也就是算法(algorithm)。

数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。

著名计算机科学家沃思提出一个公式:数据结构 + 算法 = 程序

计算机算法可以分为两个大类:数值运算算法非数值运算算法

(1)数值运算目的是求数值解,例如求方程的根、求一个函数的定积分等都属于数值运算范围。

(2)非数值运算包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。目前,计算机在非数值运算方面的应用远远超过了在数值运算方面的应用。

由于数值运算有现成的模型,可以运用数值分析方法,因此对数值运算的算法的研究比较深入,算法比较成熟。

算法特性

(1)有穷性。

一个算法应包含有限的操作步骤,而不能是无限的。事实上,“有穷性”往往指“在合理的范围之内”。如果让计算机执行一个历时1000年才结束的算法,这虽然是有穷的,但超过了合理的限度,人们也不把它视为有效算法。究竟什么算“合理限度”,并无严格标准,由人们的常识和需要而定。

(2)确定性。

算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。例如,有一个健身操的动作要领,其中有一个动作:“ 手举过头顶”,这个步骤就是不确定的,含糊的。是双手都举过头?还是左手?或右手?举过头顶多少厘米?不同的人可以有不同的理解。算法中的每一个步骤应当不致被解释成不同的含义,而应是十分明确无误的。也就是说,算法的含义应当是惟一的,而不应当产生“歧义性”。所谓“歧义性”是指可以被理解为两种(或多种)的可能含义。

(3)有零个或多个输入。

所谓输入是指在执行算法时需要从外界取得必要的信息。例如,求两个整数m和n的最大公约数,则需要输入m和n的值。一个算法也可以没有输入,例如,在执行算法时不需要输人任何信息,就能求出5!。

(4)有一个或多个输出。

算法的目的是为了求解,“解”就是输出。如求素数的算法,最后输出的n“是素数”或“不是素数”就是输出的信息。但算法的输出不一定就是计算机的打印输出,一个算法得到的结果就是算法的输出。没有输出的算法是没有意义的。

(5)有效性。

算法中的每一个步骤都应当能有效地执行,并得到确定的结果。例如,若b=0,则执行a/b是不能有效执行的。

算法表示

(1)用自然语言表示一个算法

(2)用流程图表示一个算法

查看源图像

(3)用N-S流程图表示算法

(4)用伪代码表示算法

(5)用计算机语言表示算法

3种基本结构

(1)顺序结构

(2)选择结构

(3)循环结构

        ① 当型循环结构:先判断,后执行(while ... 、for ...)

        ② 直到型循环:先执行,后判断(do ... while ....)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值