算法与程序有什么区别?
算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。程序不等于算法。但是,通过程序设计可以在计算机上实现算法。
你可能解答过一个有趣的问题——“人、狼、羊过河”问题。有个人带着三只狼、三只羊,要过河去。有一条小船。船上除了运载一个人外,至多再载狼或羊中的任意两只。但难点是:当人不在场时,如果狼的数量大于等于羊的数量,那么羊会被狼吃掉。为了安全过河,你有什么办法呢?
解决它的算法有多个,其中一个解决方案是这样的:
开始,运一只狼过河,空船回来;
接着,运一只狼和一只羊再过河,到对岸后,再运两只狼回来;
然后,运两只羊过河,空船回来;
最后,分两次将狼全部运过河;
由此,过河问题就得以解决了。
可见,算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。它由有限步骤的操作序列组成,代表着用系统的方法描述解决问题的策略机制。
算法是一组严谨定义运算顺序的规则,每一个规则都是有效的、明确的,此顺序必须在有限的次数下终止。在上面的过河问题中,如果第一步中改为:“运一只狼过河,再运这只狼回来”,那么,说明人没找到好办法,在反复进行无用操作。此类算法,是失败的,永远也实现不了既定目标。
算法描述,一般可以使用汉、英等自然语言,比较通俗易懂。也可以使用流程图、伪代码表格等其他工具。
在古代,算法通常用于数值计算。中国古代的筹算口诀、珠算口诀及其执行规则就是算法的雏形。它所解决的是数值计算问题。现代算法,已超出数值计算范围。
程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。这些指令,可以是计算机的机器指令,也可以是汇编语言和高级程序设计语言。
程序不等于算法。但是,通过程序设计可以在计算机上实现算法。在实际应用中,也许只需一条(组)程序设计语句,就可以完成算法的基本要素处理,包括数据对象的运算和操作,以及顺序、选择、循环结构的控制。通过程序模块设计,可以实现算法中的递推、递归、迭代等一系列基本算法,也包括形式演绎、数据结构、数论图论、加密解密、科学决策等复杂算法。
因此,运用计算机解决问题的过程,通常可以分成三个阶段:分析问题、设计算法和编制程序实现算法。由于计算机运算速度快,存储数据量大,大大提高了算法实现效率。
-
森林防火内容怎么写
森林防火内容怎么写(01)火是让人赞叹的,同时也是让人唾弃的。此时此刻,人类应该担当起动物的保护者,森林的保护者,大自然的保护者。火是人类所创造,所以人类有责任去控制它对森林的侵害。(02)在沧海茫茫的森林之中,大火如同一只凶神恶煞的狼狗,狼吞虎咽般嗤食的对它来说美...
-
甜酱十大品牌排行榜
依托百度全网大数据,根据品牌评价以及销量评选出了2019年甜酱十大品牌排行榜,前十名分别是粮全其美、利民Limin、天源酱园、六必居、嘉豪、大妃娘娘、桃园建民、好时/HERSHEY’S、李锦记/LEEKUMKEE、hame食品。如果您正在查找甜酱什么牌子好?那么本甜酱十大品牌榜...
-
空间刷访客的方法
(01)先把刷QQ空间访问量的工具下载下来,之后就会看到有一个刷QQ空间人气的图标,点击进入即可。(02)打开上面的图标就会进入到一个网站,先打开网站的时候会有一个确认选项,选择是;然后先把QQ空间刷人气软件版设置好,先把线程写好,然后输入自己要刷人气的QQ。(03)然后在把滚动...
-
互补色配色的方法
(01)互补色对比性强烈,因此在视觉上会产生极大的隔离作用。由于色相对比过大,配色难度也最大,如何化解互补色之间的冲突感,是用好互补色的关键。(02)如果使用面积相近的互补色的搭配,具有强烈的冲突感,产生的视觉效果强烈而鲜明,情感浓烈,令人记忆深刻。非常适合夸张的、张...