你知道什么是算法吗?
算法的定义
对于算法的解释,全世界的定义是不唯一的。我们给出的算法的定义是:一系列用来解决单个或多个问题,或有执行计算功能的命令的集合。再结合上输入与输出,算法就是将输入转换为输出的一系列计算步骤的集合。
听起来很拗口,对不对?
没关系,我们可以把一个算法比作是一个菜谱。如图1-1所示,原材料就是输入,做出来的成品即为输出,而算法,就是做菜过程中的复杂步骤。
图1-1 算法和做菜步骤的对比
再换一种方式看算法,算法的本质其实是数学的理论与推导。在还没有发明求和公式之前,如何求出? 逐个数求和虽能算出答案,但过于繁杂。但反观求和公式,无论n取多大的值,计算的步骤和繁琐程度基本不会增加。这就是算法存在的意义。人类在解决复杂问题时所采用的一系列特定的方法,即为算法。
算法与程序的区别
明白了什么是算法,再来看算法和程序的区别。通常来说,程序指一组计算机能识别和执行,并有一定功能的指令。
后者的定义似乎和算法很相似,但算法和程序之间最大的区别在于程序是以计算机能够理解的各式各样的编程语言编写而成的,而算法是可以通过编程语言、图绘、口述等人能够理解的方式来描述的,不一定局限于编程语言的诠释,如图1-2 所示。