要想成为一名合格的程序员,除了至少掌握一门编程语言,更重要的是“解决问题”的能力。任何一门编程语言的学习,本质就是学习它规定的语法,整个过程只能死记硬背,几乎没有捷径。但是,提高“解决问题”的能力是有捷径可寻的,那就是掌握一些算法。
算法是什么
所谓算法,就是用来解决问题的一个计算过程,它规定了解决某个问题的具体步骤,先做什么、再做什么,只要依次完成这些步骤,问题就可以得到解决。
但是,算法和问题之间并不是简单的“一对一”关系,一个算法解决的是具有共性的一类问题,比如排序;但一个问题往往对应有多种算法,虽然它们最终都可以解决问题,但有的算法效率高,有的效率低,需要我们具备挑选“好”算法的能力,这就是我们后面要学习的复杂度。
算法提供的仅仅是解决问题的思路,真正解决问题的是我们编写的程序。算法和程序之间的关系可以这样理解,根据算法提供的解题思路,程序员编写出计算机能识别的程序代码,交由计算机执行,从而解决问题。
算法解决问题示例
举个简单的例子,比如要设计一种算法,计算 n! 并输出最终结果。用自然语言描述步骤:
1) 接收n的值
2) 计算1到n的乘积,并赋值给r
3) 输入r的值
代码实现
def func(n): r = 1 for i in range(1,n+1): r *= i return r
不难发现,使用代码描述出来的算法,更具有准确性和可读性。
本文为 陈华 原创,欢迎转载,但请注明出处:http://edu.ichenhua.cn/read/71