递归、迭代、动态规划的区别

递归的基本概念:程序调用自身的编程技巧,就是函数自己调用自己;

一个函数在定义中直接或者间接调用自身的一种方法,它通常是将一个大型的复杂的问题分解为与之相似的小的问题,可以极大的减少代码量;

递归有两个特点:

1)函数自身调用自身;

2)使用递归时必须要有一个明确的出口;

递归分两个阶段:

1)递推:把复杂的问题推到比原问题简单的子问题的求解;

2)回归:当获取最简单的情况后,逐步返回,依次得到复杂问题的解;

由于递归引起一系列函数的调用,而且可能存在一些重复的计算,因此效率并不高;

迭代的意思是从一个已知的问题的解出发,推到出复杂问题的解,如果递归是自身不断调用自身,那么迭代就是A不断调用B;

猜你喜欢

转载自blog.csdn.net/daida2008/article/details/100839265