递归调用这个算法是什么?

递归算法,百度百科上的定义为:一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数)。
仅看定义我们可能还是弄不明白,但是如果您玩过九连环,那么递归算

本文最后更新时间:  2023-02-22 07:44:17

递归算法,百度百科上的定义为:一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数)。

仅看定义我们可能还是弄不明白,但是如果您玩过九连环,那么递归算法就很容易理解了。

为什么这样说呢?我们首先来看看九连环。

九连环是中国传统民间智力玩具,以金属丝制成9个圆环,将圆环套装在横板或各式框架上,并贯以环柄。把玩时,按照一定的程序反复操作,可使9个圆环分别解开,或合二为一。

九连环的每个环互相制约,只有第一环能够自由上下。要想下/上第n个环,就必须满足两个条件(第一个环除外)。一、第n-1个环在架上;二、第n-1个环前面的环全部不在架上。玩九连环就是要努力满足上面的两个条件。解下九连环本质上要从后面的环开始下,而先下前面的环,是为了下后面的环,前面的环还要装上,不算是真正地取下来。

我们将解九连环的过程与递归算法的特点进行比对可以发现,解九连环的过程正是一个递归算法的实际应用。

递归算法三个特点:

一、是每次调用在规模上都有所缩小:

对应解九连环的过程就是,每次操作都会解开一个环

二、是相邻两次重复之间有紧密的联系,前一次要为后一次做准备:

对应解九连环的过程就是,先下前面的环,是为了下后面的环

三、是在问题的规模极小时必须用直接给出解答而不再进行递归调用:

对应解九连环的过程就是,第一环能够自由上下

所以想要了解递归算法,找一个九连环玩玩理解的会更加深刻。

除了九连环,还有哪些情况会用到递归算法呢?

一、阶乘

n! = n * ( n - 1 ) *( n - 2 )*....*1 ( n > 1 )

二、斐波那契数列

斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……

这个数列从第三项开始,每一项都等于前两项之和。

三、河内塔问题

借助B柱将A柱上的所有圆盘移动到C柱上,每次只能挪动最上面一个圆盘,大圆盘不能压在小圆盘上面。

 1/2    1 2 下一页 尾页
温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。