C语言中算法是程序的什么

C语言中算法是程序的什么,第1张

程序设计=数据结构+算法。所谓算法是指解决问题的具体方法是什么。而数据结构是指所要解决的问题在计算机中的表示形式。所以在学C语言的时候只要先掌握算法是如何实现的,即能够把解决问题的方法用C语言描述出来,且描述的“好”即可具体关于算法的含义,有一门课叫“数据结构”有机会可以自学,计算机专业这门课都是必修课。

01 算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。程序不等于算法。但是,通过程序设计可以在计算机上实现算法。

你可能解答过一个有趣的问题——“人、狼、羊过河”问题。有个人带着三只狼、三只羊,要过河去。有一条小船。船上除了运载一个人外,至多再载狼或羊中的任意两只。但难点是:当人不在场时,如果狼的数量大于等于羊的数量,那么羊会被狼吃掉。为了安全过河,你有什么办法呢?

解决它的算法有多个,其中一个解决方案是这样的:

开始,运一只狼过河,空船回来;

接着,运一只狼和一只羊再过河,到对岸后,再运两只狼回来;

然后,运两只羊过河,空船回来;

最后,分两次将狼全部运过河;

由此,过河问题就得以解决了。

可见,算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。它由有限步骤的 *** 作序列组成,代表着用系统的方法描述解决问题的策略机制。

算法是一组严谨定义运算顺序的规则,每一个规则都是有效的、明确的,此顺序必须在有限的次数下终止。在上面的过河问题中,如果第一步中改为:“运一只狼过河,再运这只狼回来”,那么,说明人没找到好办法,在反复进行无用 *** 作。此类算法,是失败的,永远也实现不了既定目标。

算法描述,一般可以使用汉、英等自然语言,比较通俗易懂。也可以使用流程图、伪代码表格等其他工具。

在古代,算法通常用于数值计算。中国古代的筹算口诀、珠算口诀及其执行规则就是算法的雏形。它所解决的是数值计算问题。现代算法,已超出数值计算范围。

程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。这些指令,可以是计算机的机器指令,也可以是汇编语言和高级程序设计语言。

程序不等于算法。但是,通过程序设计可以在计算机上实现算法。在实际应用中,也许只需一条(组)程序设计语句,就可以完成算法的基本要素处理,包括数据对象的运算和 *** 作,以及顺序、选择、循环结构的控制。通过程序模块设计,可以实现算法中的递推、递归、迭代等一系列基本算法,也包括形式演绎、数据结构、数论图论、加密解密、科学决策等复杂算法。

因此,运用计算机解决问题的过程,通常可以分成三个阶段:分析问题、设计算法和编制程序实现算法。由于计算机运算速度快,存储数据量大,大大提高了算法实现效率。

算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。

</FIELDSET>比如你从b地到a地,有许多条路可以走,找出一条最短的路的方法就是一个算法。

编程中解决一个问题同样有很多不同方法,每个方法就是一个算法。

算法里面总有一个最好的,效率最高的,能否做到用效率最高的方法来完成任务,就是一个程序员水平高低的表现之一。

这句话是错误的

我理解这句话的错误在于逻辑上搞反了,把包含和被包含,子集和全集的关系颠倒了属于文字游戏一类的题目,

实际上,我想这句话错在,计算机程序只是实现算法的一个手段,如果不用计算机程序还可以用其他办法实现算法,比如,在加密领域,很多密码机实际上是使用硬件加密的,我举一个最著名的例子,二战时德军的Enigma(恩尼格玛)密码机,就是使用经典密码算法恩尼格玛的密码机,但它是完全机械结构的,那个时候德军还没有计算机呢,这不也是实现了算法了吗而且考试的时候,不给你计算机,你用手算,也能实现一些算法啊,不然,考试时让你给出某个算法的结果,你就不做了么

所以,这道题其实没什么意思,文字游戏罢了

算法是对特定问题求解过程的描述,是指令的有限序列,每条指令完成一个或多个 *** 作。通俗地讲,就是为解决某一特定问题而采取的具体有限的 *** 作步骤。

算法具有以下特性:

(1)有穷性:在有限的 *** 作步骤内完成。有穷性是算法的重要特性,任何一个问题的解决不论其采取什么样的算法,其终归是要把问题解决好。如果一种算法的执行时间是无限的,或在期望的时间内没有完成,那么这种算法就是无用和徒劳的,我们不能称其为算法。

(2)确定性:每个步骤确定,步骤的结果确定。算法中的每一个步骤其目的应该是明确的,对问题的解决是有贡献的。如果采取了一系列步骤而问题没有得到彻底的解决,也就达不到目的,则该步骤是无意义的。

(3)可行性:每个步骤有效执行,得到确定的结果。每一个具体步骤在通过计算机实现时应能够使计算机完成,如果这一步骤在计算机上无法实现,也就达不到预期的目的,那么这一步骤是不完善的和不正确的,是不可行的。

(4)零个或多个输入:从外界获得信息。算法的过程可以无数据输入,也可以有多种类型的多个数据输入,需根据具体的问题加以分析。

(5)一个或多个:算法得到的结果就是算法的输出(不一定就是打印输出)。算法的目的是为解决一个具体问题,一旦问题得以解决,就说明采取的算法是正确的,而结果的输出正是验证这一目的的最好方式。

算法与源程序的区别如下:

一、形式不同

1、算法:算法在描述上一般使用半形式化的语言。

2、程序:程序是用形式化的计算机语言描述的。

二、性质不同

1、算法:算法是解决问题的步骤。

2、程序:程序是算法的代码实现。

三、特点不同

1、算法:算法要依靠程序来完成功能。

2、程序:程序需要算法作为灵魂。

算法(解题方案的准确而完整的描述):

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。

形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。

以上就是关于C语言中算法是程序的什么全部的内容,包括:C语言中算法是程序的什么、算法与程序有何区别、编程中的算法是指什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9468509.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存