1.归并排序
归并排序是用分治的思想,使用递归来实现解决排序问题。
分治体现在把大的问题变成两个规模相当的子问题,在读之前我觉得归并就自然而然两个子问题一般大,其实可以一边1个,一边n-1个,不这样是因为这样没有充分利用计算机的并行计算的能力。
2.组合
组合能解决的问题比如词组匹配、比赛安排。
因为组合是在排列的基础上不看重顺序,所以编程中的组合可以通过对数据排序来实现。
3.数学归纳法能提升效率
在讲64个格子,从1个麦粒开始逐个翻倍装的故事里,归纳目前总共有多少麦粒需要两个数据,一个是前面一共有多少了,一个是当前的是多少,这两个数据都需要归纳法解决,而归纳能提升计算效率。在这个基础上引出了递归。