递归是什么(Recursive)

作者 : 开心源码 本文共772个字,预计阅读时间需要2分钟 发布时间: 2022-05-13 共223人阅读

概述

递归是一种算法,递归是通过调用自己本身达到最终操作的。它与迭代不同,递归是反复调用自己的定义来完成计算操作。

In computer programming, the term recursive describes a function or method that repeatedly calculates a smaller part of itself to arrive at the final result. It is similar to iteration, but instead of repeating a set of operations, a recursive function accomplishes repetition by referring to itself in its own definition.

比方:

我家住在20楼,现在往下找东西,先去19楼,没有,继续去18楼,没有,继续去17楼,没有,去16楼……..,一直到1楼)(也有可能到7,8,9楼),得到的结果可能有两种,1.找到了,2.没有找到,到达1楼后不论有没有找到,都会返回,先返回到2楼,而后3楼,最后到20楼。这实际上就是一个递归过程。可以把找东西看做是递归函数,每到一层调用一次找东西(函数),找到了,而后再一次一次返回。

代码运行结果

递归使用场景和条件

递归的使用场景一般是在同一问题领域内容深层嵌套时使用。

递归的条件是有限的调用自身(有终止条件),每次调用都离结果更近,递归栈应该在物理内存有限范围和栈深有限范围。

递归开发案例

1.在日常开发中会一个表内,存储父子节点数据。如下图,用类来模拟表结构。

表结构存储两条链路数据

需求:根据传入的id列表查询出,id对应的所有父节点。比方查询11,那么他的父节点就是10,9,8,7。

给出的处理办法

2.使用递归算法打印数字

递归打印数字

GitHub Recursive Code

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 递归是什么(Recursive)

发表回复