Recursion
递归-循环
通过函数体来进行的循环(函数自己调用自己来形成循环)
代码要避免死循环(死递归即递归不停止)
其中
if n<=1:
return 1
为递归的终止条件
递归执行过程如下,以N=6为例
递归的模板
斐波那契数的递归算法
运行路径如下
会产生许多重复的子问题运算,因此在本问题中效率并不是最好的
Divide&Conquer(分治)
一个大的问题,要分成小问题来依次解决最后合并结果
优点是可以进行并行计算,子问题处理之间是不相关的,可以在多个cpu上同时跑,不必等其他问题得出结果
同理如果不同小问题间有大量的重复计算的话,该方法效率可能并不是最好的。
分治的代码模板