Ⅰ 算法与程序有什么区别
算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。程序不等于算法。但是,通过程序设计可以在计算机上实现算法。
你可能解答过一个有趣的问题——“人、狼、羊过河”问题。有个人带着三只狼、三只羊,要过河去。有一条小船。船上除了运载一个人外,至多再载狼或羊中的任意两只。但难点是:当人不在场时,如果狼的数量大于等于羊的数量,那么羊会被狼吃掉。为了安全过河,你有什么办法呢?
解决它的算法有多个,其中一个解决方案是这样的:
开始,运一只狼过河,空船回来;
接着,运一只狼和一只羊再过河,到对岸后,再运两只狼回来;
然后,运两只羊过河,空船回来;
最后,分两次将狼全部运过河;
由此,过河问题就得以解决了。
可见,算法是为一个问题或一类问题给出的解决方法与具体步骤,是对问题求解过程的一种准确而完整的逻辑描述。它由有限步骤的操作序列组成,代表着用系统的方法描述解决问题的策略机制。
算法是一组严谨定义运算顺序的规则,每一个规则都是有效的、明确的,此顺序必须在有限的次数下终止。在上面的过河问题中,如果第一步中改为:“运一只狼过河,再运这只狼回来”,那么,说明人没找到好办法,在反复进行无用操作。此类算法,是失败的,永远也实现不了既定目标。
算法描述,一般可以使用汉、英等自然语言,比较通俗易懂。也可以使用流程图、伪代码表格等其他工具。
在古代,算法通常用于数值计算。中国古代的筹算口诀、珠算口诀及其执行规则就是算法的雏形。它所解决的是数值计算问题。现代算法,已超出数值计算范围。
程序则是为了用计算机解题或控制某一过程而编排的一系列指令的集合。这些指令,可以是计算机的机器指令,也可以是汇编语言和高级程序设计语言。
程序不等于算法。但是,通过程序设计可以在计算机上实现算法。在实际应用中,也许只需一条(组)程序设计语句,就可以完成算法的基本要素处理,包括数据对象的运算和操作,以及顺序、选择、循环结构的控制。通过程序模块设计,可以实现算法中的递推、递归、迭代等一系列基本算法,也包括形式演绎、数据结构、数论图论、加密解密、科学决策等复杂算法。
因此,运用计算机解决问题的过程,通常可以分成三个阶段:分析问题、设计算法和编制程序实现算法。由于计算机运算速度快,存储数据量大,大大提高了算法实现效率。
Ⅱ 算法与程序有何区别和联系
联系:程序是计算机指令的有序集合,是算法用某种程序设计语言的表述,是算法在计算机上的具体实现。
区别:
一、形式不同
1、算法:算法在描述上一般使用半角式化的语言。
2、程序:程序是用形式化的计算机语言描述的。
二、性质不同
1、算法:算法是解决问题的步骤。
2、程序:程序是算法的代码实现。
三、特点不同
1、算法:算法要依靠程序来完成功能。
2、程序:程序需要算法作为灵魂。
Ⅲ 程序和算法的区别是什么
一、算法和程序的区别是:
1、在语言描述上不同:程序必须是用规定的程序设计语言来写,而算法很随意。
2、在执行时间上不同:算法所描述的步骤一定是有限的,而程序可以无限地执行下去。
3、两者定义不同:算法是对特定问题求解步骤的描述,它是有限序列指令。程序是实现预期目的而进行操作的一系列语句和指令。
(3)写程序不是就是写算法吗扩展阅读:
一、程序的运行
使计算机程序得以运行,计算机需要加载代码,同时也要加载数据。从计算机的底层来说,这是由高级语言(例如Java,C/C++,C#等)代码转译成机器语言而被CPU所理解,进行加载。
如果您在一个符合大多数的计算机上,操作系统例如Windows、Linux等,加载并执行很多的程序,在这种情况下,每一个程序是一个单独的映射,并不是计算机上的所有可执行程序。
为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。同一计算机程序的源程序和目标程序为同一作品。
二、算法:包括递推法、递归法、穷举法、贪心算法、分治法、动态规划法、迭代法、分支界限法、回溯法等。
大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。
参考资料来源:网络-程序
参考资料来源:网络-算法
Ⅳ 高人进!!编写编程时要一定学 算法 吗 那它的用处是什么啊
这个得要分情况了,如果你编写的程序实际用途不是很苛刻,就用一般算法就行了,要是很苛刻的用途或是条件,那算法是很重要的,它影响一个程序的执行效率,好的程序,优秀的程序,算法肯定很有讲究!计算机到最深入,其实就是在跟数学打交道。
Ⅳ 算法与程序的区别与联系
算法和程序的区别是:
(1) 两者定义不同。算法是对特定问题求解步骤的描述,它是有限序列指令。而程序是实现预期目的而进行操作的一系列语句和指令。
说通俗一些算法是解决一个问题的思路,程序,是解决这些问题所具体好写的代码。算法没有语言界限。他只是一个思路。为实现相同的一个算法,用不同语言编写的程序会不一样。
(2)两者的书写规定不同。程序必须用规定的程序设计语言来写,而算法很随意。算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些逻辑判断。
简单算法举例 例:求 1*2*3*4*5
步骤 1 :先求 1*2 ,得到结果 2 。
步骤 2 :将步骤 1 得到的乘积 2 再乘以 3 ,得到结果 6 。
步骤 3 :将步骤 2 得到的乘积 6 再乘以 4 ,得到结果 24 。
步骤 4 :将步骤 3 得到的乘积 24 再乘以 5 ,得到最后结果 120 。
算法与程序的联系 :
算法和程序都是指令的有限序列 ,但是程序是算法,而算法不一定是 程序。程序 = 数据结构 + 算法。算法的主要目的在于为人们提供阅读了解所执行的工作流程与步骤。数据结构与算法要通过程序的实现,才能由计算机系统来执行。可以这样理解,数据结构和算法形成了可执行的程序。
(5)写程序不是就是写算法吗扩展阅读
算法的要素:
一、数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:
1、算术运算:加减乘除等运算。
2、逻辑运算:或、且、非等运算。
3、关系运算:大于、小于、等于、不等于等运算。
4、数据传输:输入、输出、赋值等运算。
二、算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
Ⅵ 写算法和写程序有什么区别啊 请你们指教
算法就是解决该问题的思路,可以用自然语言描述,也可以用伪计算机语言描述,目的是分析出解决该问题的方法.
写程序就是根据分析出的算发编写出符合该编程语言语法规范的代码用来编译执行而得到结果.
Ⅶ 算法就是程序
不是的。
算法是程序编写的方法。 而不是程序本身。
简单的说,算法是理论, 而程序是实践。
通过算法 可以实现出程序。而给定一个程序也可以反推出算法。