什么是算法
算法不是什么难懂的词,它的意思是“解决问题的固定步骤”。就像煮面、找路一样,只要把步骤定好,谁来做都会得到同样的答案。
做三明治的步骤
假设要做一个三明治。
拿出面包,抹上果酱,再盖上另一片面包。
按这些固定的步骤一步步做下去,三明治就做好了。
这就是算法。
每按一次“下一步”,步骤就往前走一步。拿出面包 → 抹果酱 → 盖上 → 切开 → 完成。
听起来很难的“算法”,其实就是这个。
先做什么、再做什么,把顺序定好。
菜谱也好,组装说明书也好,其实都是算法。
先穿袜子,还是先穿鞋?
顺序不是随便定的。
先穿袜子再穿鞋,就能穿好。
可要是先穿鞋再穿袜子,就穿不上了。
顺序错了,结果也会错。
换了顺序,结果就不同。正确的顺序 → 顺利 · 颠倒的顺序 → 不行。
所以在算法里,顺序非常重要。
先做什么,决定了能不能成功。
不只要知道有哪些步骤,还要知道正确的顺序。
同样的步骤,同样的结果
固定步骤的力量就在这里。
我照着这个步骤做,朋友也照着做,两个人就会得到同样的答案。
不受心情或运气影响,只要步骤相同,结果就相同。
按同样的步骤做,两个人得到同样的答案。我 → 7 · 朋友 → 7。
这样好,是因为它值得信赖。
“照这个步骤做,一定会得到这个答案。”
所以把步骤写给计算机,它每次都会做同样的事。
找出两个数里较大的那个
我们一起来走一遍一个很小的算法。
它要从两个数里找出较大的那个。
“比较两个数,选出较大的一个。”这样的步骤就够了。
放进输入,答案就出来了。
输入 → 步骤 → 答案。数A 7 · 数B 4 → 比较 → 答案 7。
看起来不算什么,可这样的小步骤积少成多,就能做成了不起的事。
把几千个东西排好队,把想要的东西找出来。
这些全靠固定步骤的力量。
想让计算机来做
计算机不会自己“看着办”。
做什么、按什么顺序做,都得由我们写下来。
这个顺序就是算法,写得好,计算机就能又快又准地完成。
明白了步骤,接下来。算法 = 解决问题的步骤 → 排序 · 查找 · 更远处。
以后不管遇到什么算法,都不用害怕。
看起来再复杂,里面都一样。
不过是定好了先做什么、再做什么的顺序而已。