C程序算法的特性
为了能编写程序,必须学会算法。不能以为任意写出的一些执行步骤就构成一个有效且好的算法。一个有效算法应具有以下特点。
(1)有穷性
一个算法应包含有限的操作步骤,而不能是无限的。事实上,“有穷性”往往指“在合理的范围之内”。如果让一个计算机执行一个历时10000年才结束的算法,这虽然是有穷的,但超过了合理的限度,通常也不把它视为有效算法。“合理限度”由常识和需要判定。
(2)确定性
算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。例如,有一个健身操的动作要领,其中有一个动作:“手举过头顶”,这个步骤就是不确定的,含糊的,是双手都举过头顶?还是左手或者右手:?举过头顶多高?不同的人会有不同的理解。算法中的每一个步骤应当不致被理解成不同的含义,而应当是明确无误的。也就是说,算法的含义应当是唯一的,而不应当产生“歧义性”。所谓“歧义性”,是指可以被理解为两种或多种的可能含义。
(3)有零个或多个输入
所谓输入是指在执行算法是需要从外界取得必要的信息。也可以有有两个或多个输入。
(4)有一个或多个输出。
算法的目的是为了求解,“解”就是输出。但算法的输出并不一定就是计算机的打印输出或屏幕输出,一个算法得到的结果就是算法的输出。没有输出的算法是没有意义的。
(5)有效性 算法中每一个步骤都应当能有效地执行,并得到确定的结果。例如:若b=0,则执行a/b是没有意义的,不能被有效执行。对于一般用户来说,他们并不需要在处理每一个问题时都要自己设计算法和编写程序,可以使用别人已经设计好的现成算法和程序,只须根据已知的算法的要求给予必要的输入,就能得到输出的结果。对使用者来说,已有的算法如同一个“黑箱子”一样,他们可以不了解“黑箱子”里的结构,只是从外部特性上了解算法的作用,即可方便的使用算法。对于程序设计人员来说,需要学会设计常用的算法,并且根据算法编写程序。
- 点赞
- 收藏
- 关注作者
评论(0)