算法与程序有什么区别?

2021-09-14T04:26:06最佳经验
- 01
算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。程序不等于算法。但是,通过程序设计可以在计算机上实现算法。
你可能解答过一个有趣的问题——“人、狼、羊过河”问题。有个人带着三只狼、三只羊,要过河去。有一条小船。船上除了运载一个人外,至多再载狼或羊中的任意两只。但难点是:当人不在场时,如果狼的数量大于等于羊的数量,那么羊会被狼吃掉。为了安全过河,你有什么办法呢?
解决它的算法有多个,其中一个解决方案是这样的:
开始,运一只狼过河,空船回来;
接着,运一只狼和一只羊再过河,到对岸后,再运两只狼回来;
然后,运两只羊过河,空船回来;
最后,分两次将狼全部运过河;
由此,过河问题就得以解决了。
可见,算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。它由有限步骤的操作序列组成,代表着用系统的方法描述解决问题的策略机制。
算法是一组严谨定义运算顺序的规则,每一个规则都是有效的、明确的,此顺序必须在有限的次数下终止。在上面的过河问题中,如果第一步中改为:“运一只狼过河,再运这只狼回来”,那么,说明人没找到好办法,在反复进行无用操作。此类算法,是失败的,永远也实现不了既定目标。
算法描述,一般可以使用汉、英等自然语言,比较通俗易懂。也可以使用流程图、伪代码表格等其他工具。
在古代,算法通常用于数值计算。中国古代的筹算口诀、珠算口诀及其执行规则就是算法的雏形。它所解决的是数值计算问题。现代算法,已超出数值计算范围。
程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。这些指令,可以是计算机的机器指令,也可以是汇编语言和高级程序设计语言。
程序不等于算法。但是,通过程序设计可以在计算机上实现算法。在实际应用中,也许只需一条(组)程序设计语句,就可以完成算法的基本要素处理,包括数据对象的运算和操作,以及顺序、选择、循环结构的控制。通过程序模块设计,可以实现算法中的递推、递归、迭代等一系列基本算法,也包括形式演绎、数据结构、数论图论、加密解密、科学决策等复杂算法。
因此,运用计算机解决问题的过程,通常可以分成三个阶段:分析问题、设计算法和编制程序实现算法。由于计算机运算速度快,存储数据量大,大大提高了算法实现效率。
相关经验推荐
- Q测量体温的正确方法都有哪些
- Q怎么在国家食品药品监督局网站上查询药品
- Q怎么把新鞋撑大
- Q新手如何学会电动车?
- Q如何自动存取款机上存款
- Q宝宝发烧吃什么食物
- Q网购没收到货,但快递显示已签收了,怎么办
- Q大学生工作后自己办社保卡流程
- Q科目二考试的绝密技巧及注意事项
- Q为什么磕头虫会“磕头”?
- Q为什么翼龙能在空中飞行?
- Q为什么昆虫没有鼻子却嗅觉灵敏?
- Q长期大量喝茶,会伤肾吗?怎样喝茶才对人的身体最好?
- Q什么时候吃枸杞最好,每天吃多少粒?
- Q100元人民币在印度能买到些什么?
- Q为什么感觉半个中国的人都说四川话?
- Q婴儿抽搐症的表现大概是什么呢?
- Q如何解释“不能在太岁头上动土”中的太岁?动土会怎样?
- Q俗话说:“一人不进庙,二人不看井,三人不抱树”是什么意思?
- Q你知道哪些特殊血液?有多罕见?
- Q请问豆腐乳对身体有害吗?
- Q有营养又吃不胖的坚果有哪些?
已有 5731966 位网友注册
已帮助 129343 人解决了问题