算法和函数有什么区别?

时间:2010-08-02 20:28:58

标签: algorithm function terminology

它们是一样的吗?

11 个答案:

答案 0 :(得分:26)

没有。

函数是计算机程序中的代码块。

算法是描述如何解决问题的抽象概念。

答案 1 :(得分:14)

在数学中,函数是“一种数学关系,使得给定集合的每个元素(函数的域)与另一集合的元素(函数的范围)相关联”(来源 - google.com ,定义:功能)。

在计算机科学中,函数是一段代码,可选择地获取参数,可选地给出结果,并且可选地具有副作用(取决于语言 - 某些语言禁止副作用)。它必须具有特定的机器实现才能执行。

计算机科学术语来自数学术语,是数学概念的机器实现。

算法是“一个精确的规则(或规则集),指定如何解决某些问题”(来源 - google.com,定义:算法)。算法可以在计算机科学之外定义,并且没有确定的机器实现。您可以通过手工编写来“实现”它:)

这里的关键区别在于,在计算机科学中,算法是抽象的,并且没有明确的机器实现。函数是具体的,并且具有机器实现。

答案 2 :(得分:6)

算法是一组指令。

在计算机编程中,函数是算法的实现。

答案 3 :(得分:4)

算法是用于执行计算的一系列步骤(过程),而函数是参数和结果之间的数学关系。

编程中的函数与函数的典型数学含义不同,因为它是一组实现计算函数的算法的指令。

答案 4 :(得分:3)

算法描述了一般概念,而函数是该想法的实际工作实现。

答案 5 :(得分:2)

这可能几乎是一个哲学问题,但我会说算法是解决问题的答案(或方法),因为函数本身并不能解决一个问题。

你想要做的通常是将你的算法分成几个函数,每个函数都有自己的目标,最终,当一起使用时,它将实现手头的问题。

例如:您想要对数字列表进行排序。使用的算法将是例如合并排序算法。该特定算法实际上由多个函数组成,一个用于拆分数组,另一个用于检查相等性,另一个用于将所有内容合并在一起,等等。

答案 6 :(得分:2)

数学函数是算法的输入和输出的接口或规范。

算法是定义可以实现函数的步骤的精确配方。

令人困惑的是,计算机语言设计师通过使用概念functionfuncmethod等来概括这一区别,并讨论这两个概念。

因此区别在于规范与定义之间的区别。

还有一个语义上的区别:算法试图提供问题的解决方案。它以目标为导向。一个函数只是 - 没有必要的目的论成分。

答案 7 :(得分:1)

算法是函数的实现。

在某些情况下,算法很简单:

功能:两个数字的总和。 算法: int sum(int x, int y){ return x+y; }

在其他情况下,它不是:

功能:最佳国际象棋动作。 算法: Move bestChessMove(State gameState){ //I don't know the algorithm. }

答案 8 :(得分:0)

算法是(可能是非正式但必须精确的)指令序列。函数是形式规则,它将某些输入与特定输出相关联。函数实现并形式化算法。例如。我们可以正式化"从a到b"作为go(a)=bgo(x,a)=b(w / x前往的人)等。根据Wikipedia

  

算法是一种可以在a中表达的有效方法   有限的空间和时间,以及明确的正式   计算函数的语言。

所以你可以说"从a到b"是计算go(a)=b(如果需要)

的有效方法

答案 9 :(得分:-1)

算法通常是指在数学处理之后用于结束结果的方法或过程。函数是一个子例程,用于避免反复写入相同的代码。它们的用途不同。例如,可能有一个用于加密数据的算法,以及一个用于将代码发布到网页的功能。

以下是一些进一步的参考:

http://en.wikipedia.org/wiki/Algorithm

http://en.wikipedia.org/wiki/Function_(computer_science)

答案 10 :(得分:-1)

函数是一种符号表示,其中方法是获得答案所需的机械步骤。

假设这个功能:

f(x) = x^ 2

现在,如果我告诉你要算f(5000),你必须做这个功能不说的事情。例如如何相乘。所以这些只是符号。

但是如果我有一个python方法,例如:

x = math.pow(500, 2) # or whatever it is

然后在这种情况下,每个操作的步骤本身都是完全定义的(在库中;))。