算法与程序有什么区别?

阿克萨清真寺2022-06-24  17

算法与程序有什么区别? 01

算法是对一个问题或一类问题给出的解法和具体步骤,是对问题求解过程的准确完整的逻辑描述。
程序是一系列指令的集合,这些指令被安排来用计算机解决问题或控制过程。
程序不等于算法。
不过算法是可以通过编程在计算机上实现的。

你可能回答了一个有趣的问题 mdash mdash 人、狼、羊过河 问题
一个人带着三只狼和三只羊要过河。
有一条船。
除了一个人,船上最多可以载任意两只狼或羊。
但难点在于:当人不在场时,如果狼的数量大于或等于羊的数量,那么羊就会被狼吃掉。
怎样做才能安全过河?

有几种算法可以解决它,其中之一是这样的:

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

然后,运送一只狼和一只羊过河,再运送两只狼回对岸;

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

最后,把所有的狼运过河两次;

这样,过河的问题就解决了。

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

算法是一组严格定义操作顺序的规则。每一条规则都是有效的、确定的,这个序列必须在有限的次数内终止。
在上面的过河问题中,如果第一步改成: 运一只狼过河,再把狼运回来 那么,就说明人还没有找到好的方法,在反复做着无用的操作。
这种算法是失败的,永远达不到既定目标。

算法描述一般可以使用中文、英文等自然语言,相对容易理解。
还可以使用流程图、伪代码表等其他工具。

在古代,算法通常用于数值计算。
中国古代的计算公式和珠算及其执行规则是算法的雏形。
解决了数值计算问题。
现代算法超出了数值计算的范围。

程序是用计算机解决问题或控制过程的一组指令。
这些指令可以是计算机的机器指令,也可以是汇编语言和高级编程语言。

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

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

转载请注明原文地址:http://juke.outofmemory.cn/read/450734.html

最新回复(0)