#算法是什么?
算法:有明确的操作步骤,可重复用于解决相同的问题
#什么是计算机算法?
我们的目标是:从特殊到一般的追求
例如:两只没有刻度的桶A和B,其中A的容量为7升,B的容量为5升。问:如何通过相互之间的倒腾,量出6升的水来?
你可以写一个有明确操作步骤的解决方案,用于解决该问题:
1.先装满A桶
2.A倒满B,余下的水保留
3.倒空B,将A余下的水倒入B
4.重复上述步骤1.2.3一次
5.装满A,然后用A装满B,此时A余下的水为6升
那如果下次你遇到“类似”的问题:
1.两只没有刻度的桶A和B,其中A的容量为10升,B的容量为3升。问:如何通过相互之间的倒腾,量出6升的水来?
2.两只没有刻度的桶A和B,其中A的容量为8升,B的容量为4升。问:如何通过相互之间的倒腾,量出6升的水来?
你应该怎么办?再次写一个步骤解决问题?<—这是面对过程编程的一种思想
我们应该培养面对对象编程的思想 —> 把上述倒水的问题抽出一般的问题来,概念化抽象化问题。
两只没有刻度的桶A和B,其中A的容量为n升,B的容量为m升。问:如何通过相互之间的倒腾,量出k升的水来?
我们需要做的是对概念化抽象化的问题写出明确的可重复操作的解决方案 —> 算法
而且遇到实际类似的问题时很容易用我们的算法解决 —> 实例