简单说,算法就是:解决问题的手段,并且是批量化解决问题的手段。
比如你想要木头桌子,那么制造桌子的工厂就是“一套算法”。提供(输入)木头,就会得到(输出)桌子。
算法就是批量化的解决方案
关于算法,有3点需要注意:
百度百科版本
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。
维基百科版本
在数学和计算机科学中,算法是如何解决一类问题的明确规范。算法可以执行计算,数据处理和自动推理任务。
作为一种有效的方法,算法可以在有限的空间和时间内以及用于计算函数的明确定义的形式语言中表达。从初始状态和初始输入开始,指令描述了一种计算,当执行时,通过有限个明确定义的连续状态,最终产生“输出”和终止于最终结束状态。
算法的概念已经存在了几个世纪。希腊数学家在例如Eratosthenes的筛子中使用算法来寻找素数,并使用Euclidean算法来找到两个数的最大公约数。算法这个词本身来自9世纪的数学家MuḥammadibnMūsāal-Khwārizmī,拉丁化的Algoritmi。对于现代算法概念的部分形式化始于试图解决大卫希尔伯特于1928年提出的Entscheidungsproblem(决策问题)。后来的形式化被定义为试图定义“有效可计算性”或“有效方法” 。这些形式化包括1930年,1934年和1935年的Gödel-Herbrand-Kleene递归函数,1936年的Alonzo Church的lambda演算,1936年的Emil Post的Formulation 1,以及1936-37和1939年的Alan Turing的图灵机。