Code前端首页关于Code前端联系我们

递归概念及算法实现原理 | Swift 代码演练

terry 2年前 (2023-09-27) 阅读数 59 #数据结构与算法

递归实现原理

递归调用实际上是通过回调栈来实现的。作者用一张图从阶乘(3)开始调用到最后,画出了6个序列之间发生的情况: 递归概念与算法实现原理|swift代码演练

从上图可以看到,整个递归过程和推操作非常相似。出栈:橙色背景的圆角矩形代表执行操作的栈顶元素,灰色背景的圆角矩形代表其余元素。它的顺序是它最初被调用的顺序,它的内容保留了调用它时执行的代码。

现在作者按照时间顺序从左到右讲解整个调用的过程:

  • 一开始经过3之后,3满足条件n>=2,继续调用自身:3 *阶乘( 2)、压入栈。
  • 经过2后,2满足条件n>=2,继续调用自身:2 * Factorial(1),入栈。
  • 进入1后,1满足条件n

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门