算法与程序有什么区别?
算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。程序不等于算法。但是,通过程序设计可以在计算机上实现算法。
你可能解答过一个有趣的问题——“人、狼、羊过河”问题。有个人带着三只狼、三只羊,要过河去。有一条小船。船上除了运载一个人外,至多再载狼或羊中的任意两只。但难点是:当人不在场时,如果狼的数量大于等于羊的数量,那么羊会被狼吃掉。为了安全过河,你有什么办法呢?
解决它的算法有多个,其中一个解决方案是这样的:
开始,运一只狼过河,空船回来;
接着,运一只狼和一只羊再过河,到对岸后,再运两只狼回来;
然后,运两只羊过河,空船回来;
最后,分两次将狼全部运过河;
由此,过河问题就得以解决了。
可见,算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。它由有限步骤的操作序列组成,代表着用系统的方法描述解决问题的策略机制。
算法是一组严谨定义运算顺序的规则,每一个规则都是有效的、明确的,此顺序必须在有限的次数下终止。在上面的过河问题中,如果第一步中改为:“运一只狼过河,再运这只狼回来”,那么,说明人没找到好办法,在反复进行无用操作。此类算法,是失败的,永远也实现不了既定目标。
算法描述,一般可以使用汉、英等自然语言,比较通俗易懂。也可以使用流程图、伪代码表格等其他工具。
在古代,算法通常用于数值计算。中国古代的筹算口诀、珠算口诀及其执行规则就是算法的雏形。它所解决的是数值计算问题。现代算法,已超出数值计算范围。
程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。这些指令,可以是计算机的机器指令,也可以是汇编语言和高级程序设计语言。
程序不等于算法。但是,通过程序设计可以在计算机上实现算法。在实际应用中,也许只需一条(组)程序设计语句,就可以完成算法的基本要素处理,包括数据对象的运算和操作,以及顺序、选择、循环结构的控制。通过程序模块设计,可以实现算法中的递推、递归、迭代等一系列基本算法,也包括形式演绎、数据结构、数论图论、加密解密、科学决策等复杂算法。
因此,运用计算机解决问题的过程,通常可以分成三个阶段:分析问题、设计算法和编制程序实现算法。由于计算机运算速度快,存储数据量大,大大提高了算法实现效率。
-
空气炸锅的危害太可怕了
(01)空气炸锅加热温度超过120℃,多在180℃~200℃,长期使用会导致食物产生丙烯酰胺类的疑似致癌物。空气炸锅具有一定辐射,虽说比较小,但长期使用对人体危害就会增加。(02)烤箱和空气炸锅两者的作用相似,但其实是两个不一样的电器,各有各的好处以及缺点,可根据自身需求进行...
-
楼上太吵最实用办法
楼上住户太吵?应该怎么办呢?操作方法(01)首先我们得和楼上的住户进行有效的沟通,坚决不选择暴力的解决问题。有一句话是这么说的:“一场争论可能是两个心灵之间的捷径。”所以就让我们一起去选择沟通吧!(02)其次我们得拥有足够的耐心,一次沟通不了,我们就多次沟通,总会成...
-
纯黑巧克力十大品牌排行榜
依托百度全网大数据,根据品牌评价以及销量评选出了2019年纯黑巧克力十大品牌排行榜,前十名分别是AMOYUU、德佳维、philo菲洛、Farmdale、嗒卟嗒卟、美乐臣、QMINI、拉芙拉、玛氏公司/M&M’s、梵圣。如果您正在查找纯黑巧克力什么牌子好?那么本纯黑巧克力十大...
-
短信可供行程证明,怎么进行短信行程证明
移动(01)打开手机短信,点击新建信息,在收件人一栏中输入【10086】,然后在短信内容输入框中输入【CXMYD】,接着点击发送即可。(02)短信发送成功后,接着便坐等中国移动通信回复短信内容。当收到移动通信回复的短信内容后,根据短信要求,在有效时间内发送数字【1】回复,即可确...