×

递归算法原理

递归算法原理(怎样学好c++递归算法呢)

admin admin 发表于2023-10-01 16:12:04 浏览41 评论0

抢沙发发表评论

本文目录

怎样学好c++递归算法呢

首先要理解递归算法的原理。这个算法的根本核心主要还是自我调用来实现的。递归算法中所有没有算出来的结果都会暂时保存在内存当中。

我觉得这样一个理解最关键的还是可以在程序当中使用调试的方法一步一步的去看见一个运算的过程,那么这样子会比较的更加的清楚。

希望我的回答能够帮到你。需帮忙随时联系哦。

递归调用这个算法是什么

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

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

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

九连环是中国传统民间智力玩具,以金属丝制成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柱上,每次只能挪动最上面一个圆盘,大圆盘不能压在小圆盘上面。