1.2 程序的灵魂:算法
在开始学习编程之前,有必要先来了解一个重要的概念——算法。
什么是“算法”?听起来很深奥的样子。简单来说,算法,就是解决问题、实现目标的方法。每当我们想要去做一件事(也就是实现某个目标)的时候,我们都会先想一想该怎么做(方法),这里说的方法,就是算法。
我们做事的目标不同,算法也就不同。即使是同一个目标,也会有好几种方法。而算法要解决的问题就是“按什么顺序,做什么事情,效率才会最高?”
这里举个简单的例子,假设你平时都骑自行车上学,今天早上一出门发现天下雨了,你会怎么办呢?这里能想到的有三种方法:
方法1:
- 回到家里,穿上雨衣
- 去地下室骑车
- 骑着自行车小心翼翼地骑去学校
方法2:
- 回到家里,拿上雨伞
- 打着伞走到班车集合点
- 坐学校的班车出发
方法3:
- 正好碰上邻居豆豆的妈妈开车送他上学,由于你们在一个学校,你直接坐上他家的车到达学校
上面三种方法,哪一种效率最高呢?如果你是想以最快的速度到达学校,那一定是方法3;如果你是想和许多好朋友一起去上学,那么他可能会选择方法2;如果你是个自行车骑行爱好者,想锻炼身体,也许会选择方法1哦。
可见,算法的选择,一定与目标相关,我们应该根据目标去思考算法。
算法和编程的关系
算法的概念清楚了,它和编程有怎样的关系?
编程和算法之间有很紧密的关系。作为一个人,面对要解决的具体问题,我们会先思考算法,再采取行动。但是如果我们是想让计算机去做这件事怎么办呢?计算机只能按照指令运行,所以,我们必须事先想好各种算法,然后用计算机能够理解的指令把这种“算法”表达出来,就变成了程序,交给计算机去执行。反过来说,程序实际是在表达一种“算法”,说算法是程序的“灵魂”也不过分。
从这点出发,我们可以给“程序”再下一个准确的定义——程序是将需要计算机执行的算法按照一定顺序写下来的一系列指令。
编写程序,实现算法的过程,就是编程。
网友评论