递归与迭代

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归与迭代相关的知识,希望对你有一定的参考价值。

递归过程

当一个过程的定义中引用了过程自身时,我们说这一过程是递归的,论述的是一书写上的语法形式。递归过程能产生递归的计算过程和迭代的计算过程。

递归计算过程

递归计算过程中,需要保存一个待计算链,这个待计算链会随着递归的深入越来越长,递归结束时,才会实际执行待计算链中的运算。存在一个扩张和收缩过程。如下图所示:

技术分享     

迭代计算过程

 在迭代的计算过程中,需要保存的变量个数是固定的,通常是计算过程的参数。

技术分享

可以说递归计算过程是一种自顶向下的过程, 而迭代计算过程是一种自底向上的计算过程。

如,在计算6的阶乘时,递归计算过程从 6 开始计算,每次计算没有结果,要等待 返回值, 而迭代计算过程从 1 开始计算,每次计算都有结果,结果作为参数传入下一次计算过程。

【SICP学习笔记】

 

以上是关于递归与迭代的主要内容,如果未能解决你的问题,请参考以下文章

迭代是人,递归是神(迭代与递归的总结:比较)

C/C++语言笔记-递归迭代动态规划的区别与联系(手段就2种-递归/迭代)

C/C++语言笔记-递归迭代动态规划的区别与联系(手段就2种-递归/迭代)

python 数据结构 理解迭代与递归 递归的实例 栈帧 函数调用

函数递归与迭代

递归和迭代的差异