您现在的位置是: 堆糖网 > 职场 > java递归算法-java递归算法经典实例

java递归算法-java递归算法经典实例

2020-03-13 21:23作者:堆糖网 179人阅读

简介一、递归算法基础实例 1、先弄清楚递归的顺序。在递归的实现中,往往需要假设后续的调用已经完成,在此基础之上,才实现递归的逻辑 2、分析清楚递归体的逻辑,然后写出来 3、考

一、递归算法基础实例

1、先弄清楚递归的顺序。在递归的实现中,往往需要假设后续的调用已经完成,在此基础之上,才实现递归的逻辑

2、分析清楚递归体的逻辑,然后写出来

3、考虑递归退出的边界条件。也就是说,哪些地方改写

PHP作为开发动态页面WEB的首选技术,对于它的基础知识我们一定要牢记,这让才能有助于编程。我们一起来看看PHP递归算法是怎么回事吧。

1、调用子程序的含义:

当主程序执行到调用子程序A语句时,系统保存一些必要的现场数据,然后执行类似于语言的语句,跳转到子程序A(为了说得简单些,我这里忽略了参数传递这个过程)。当子程序A执行到调用子程序B语句时,系统作法如上,跳转到子程序B。子程序B执行完所有语句后,跳转回子程序A调用子程序B语句的下一条语句(我这又忽略了返回值处理)子程序A执行完后,跳转回主程序调用子程序A语句的下一条语句,主程序执行到结束。

做个比较:我在吃饭(执行主程序)吃到一半时,某人叫我(执行子程序A),话正说到一半,又响了起来(执行子程序B),我只要先接完,再和某人把话说完,最后把饭吃完(我这饭吃得也够累的了J)。

2、认识递归函数

我们在高中时都学过数学归纳法,PHP递归算法例如:

求n!我们可以把n!这么定义也就是说要求3!,我们必须先求出2!,要求2!,必须先求1!,要求1!,就必须先求0!,而01,所以,再进而求2,3。分别用函数表示,我们可以观察到,除计算0!子程序外,其他的子程序基本相似,我们可以设计这么一个子程序:

  

  

1i  

  

那么当执行主程序语句3时,就会执行3但在执行3,又会调用2,这时大家要注意,3和2虽然是同一个代码段,但在内存中它的数据区是两份!而执行2时又会调用(1),执行(1)时又会调用(0),每调用一次函数,它就会在内存中新增一个数据区,那么这些复制了多份的函数大家可以把它看成是多个不同名的函数来理解;但我们这个函数有点问题,在执行(0)时,它又会调用(-1)。。。造成死循环,也就是说,在函数中,我们要在适当的时候保证不再调用该函数,也就是不执行1i这条调用语句。所以函数要改成:

  

  

1  

  

3、如何考虑用PHP递归算法来解决问题

例:求……n本来这个问题我们过去常用循环累加的方法。而这里如要用递归的方法,必须考虑两点:

1)能否把问题转化成递归形式的描述;

2)是否有递归结束的边界条件。

显然递归的两个条件都有了:

1)1n  

2)s11

所以源程序为:

  

  

ifn1res1n  

  

4、递归的应用

中序遍历二叉树

  

ifT  

  

“c”  

  

  

一递归算法基础实例

以上数据内容来源于:百度递归算法基础实例搜狗递归算法基础实例360递归算法基础实例
更多关于java递归算法
更多相关:百度java递归算法搜狗java递归算法360java递归算法

Tags:永安财险

堆糖随机推荐

堆糖探索

网名:堆糖

职业:部落开发工程师

现居:互联网堆糖部落

站点探索