码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构与算法-10-递归调用

时间:2019-11-21 13:42:17      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:AMM   条件   github   完全   实现   公式   不用   递推   问题   

递归详解-典型递归介绍

http://chenqx.github.io/2014/09/29/Algorithm-Recursive-Programming/

1.如何理解“递归”?(什么是递归)

去的过程叫“递”,回来的过程叫“归”f(n)=f(n-1)+1

备注:去的过程入栈的过程,回来的过程出栈

2.递归需要满足的三个条件(递归的特点)

2.1. 一个问题的解可以分解为几个子问题的解

2.2. 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样

2.3. 存在递归终止条件

3.如何编写递归代码?(怎样实现递归)

3.1写出递推公式,找到终止条件

归纳:写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码

编写递归代码的关键是,只要遇到递归,我们就把它抽象成一个递推公式,不用想一层层的调用关系,不要试图用人脑去分解递归的每个步骤

4.注意点(递归弊端)

递归代码要警惕堆栈溢出

递归代码要警惕重复计算

都可以将递归使用循环+栈实现

数据结构与算法-10-递归调用

标签:AMM   条件   github   完全   实现   公式   不用   递推   问题   

原文地址:https://www.cnblogs.com/mzyc/p/11904890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!