C程序算法的特性

举报
发表于 2022/10/04 16:09:19 2022/10/04
【摘要】 为了能编写程序,必须学会算法。不能以为任意写出的一些执行步骤就构成一个有效且好的算法。一个有效算法应具有以下特点。(1)有穷性一个算法应包含有限的操作步骤,而不能是无限的。事实上,“有穷性”往往指“在合理的范围之内”。如果让一个计算机执行一个历时10000年才结束的算法,这虽然是有穷的,但超过了合理的限度,通常也不把它视为有效算法。“合理限度”由常识和需要判定。(2)确定性算法中的每一个步骤...

为了能编写程序,必须学会算法。不能以为任意写出的一些执行步骤就构成一个有效且好的算法。一个有效算法应具有以下特点。

(1)有穷性

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

(2)确定性

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

(3)有零个或多个输入

所谓输入是指在执行算法是需要从外界取得必要的信息。也可以有有两个或多个输入。

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

算法的目的是为了求解,“解”就是输出。但算法的输出并不一定就是计算机的打印输出或屏幕输出,一个算法得到的结果就是算法的输出。没有输出的算法是没有意义的。

(5)有效性 算法中每一个步骤都应当能有效地执行,并得到确定的结果。例如:若b=0,则执行a/b是没有意义的,不能被有效执行。对于一般用户来说,他们并不需要在处理每一个问题时都要自己设计算法和编写程序,可以使用别人已经设计好的现成算法和程序,只须根据已知的算法的要求给予必要的输入,就能得到输出的结果。对使用者来说,已有的算法如同一个“黑箱子”一样,他们可以不了解“黑箱子”里的结构,只是从外部特性上了解算法的作用,即可方便的使用算法。对于程序设计人员来说,需要学会设计常用的算法,并且根据算法编写程序。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。