数据结构和算法分析程序员

递归是什么(Recursive)

2020-05-06  本文已影响0人  杨斌_1024

概述

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

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

上一篇下一篇

猜你喜欢

热点阅读