一个算法就像一张教计算机“烹饪”的“食谱”。如果你了解做菜的过程,你就能理解算法的定义。
下面有一张关于制作薄饼的食谱:
- 首先,将面粉、泡打粉、盐和白砂糖倒入一个大碗中。
- 加入牛奶、鸡蛋和融化了的奶油。
- 搅拌混合直至丝柔顺滑。
- 中火加热平底锅。
- 将搅拌好的面糊缓慢倒入锅中,每个薄饼大概用 1/4 CUP 的面糊即可。
- 薄饼两面都呈黄褐色即可出锅享用了。
这张食谱由一系列的步骤组成,你只需一步接一步按照指令来就可以了。算法也是如此,只不过它的指令是交给计算机去执行的,而不是厨师。
这些原料(面粉、牛奶、鸡蛋、黄油等)相当于算法中的待处理数据。这些原始数据(各种不同的原料)作为算法的输入,输出的数据(好吃的薄饼)即是结果。
那数据结构是什么呢?数据结构用于持有算法需要处理的数据。例如在薄饼食谱中,数据结构对应于用来装面粉的袋子、用于搅拌原料的碗、用于烹饪的平底锅以及最终用于盛烤好的薄饼的盘子。