当前位置: 首页 > article >正文

递归算法.

本节我们先来了解一下递归算法.

递归算法的基本原理:

说到递归算法,就不得不提到栈.当程序执行到递归函数的时候,将函数进行入栈操作,在入栈之前,通常需要完成3件事.

1.将所有实参,返回地址等信息传递给被调函数储存

2.为被调函数的局部变量分配储存区

3.将控制转移到被调函数入口

当一个函数完成之后会进行出栈操作,出栈之前同样要完成三件事:

1.保存被调函数的计算结果

2.释放被调函数的数据区

3.依照被调函数保存的返回地址将控制转移到调用函数

递归的整个过程都需要借助栈来完成,每当执行一个函数,就在栈分配空间,函数推出后,释放栈顶空间

递归算法一般包含三要素:递归前阶段,递归返回阶段和终止条件.递归前阶段是指在递归函数内执行什么样的操作以进入下一层嵌套;递归返回段是指本层执行递归函数需要返回给上层的数据,存在无需返回数据给上层的情形;终止条件是指递归函数在何种条件下终止对自身的调用,结束整个递归过程.


http://www.kler.cn/a/463050.html

相关文章:

  • 四、VSCODE 使用GIT插件
  • WordPress Crypto 插件 身份认证绕过漏洞复现(CVE-2024-9989)
  • Kafka3.x KRaft 模式 (没有zookeeper) 常用命令
  • 在 pandas.Grouper() 中,freq 参数用于指定时间频率,它定义了如何对时间序列数据进行分组。freq 的值可以是多种时间单位
  • Sublime Text4 4189 安装激活【 2025年1月3日 亲测可用】
  • Boost之buffer
  • AI对接之JSON Output
  • 使用连字符容易出错,尽量使用驼峰式的
  • java 上传txt json等类型文件解析后返回给前端
  • OpenCV-Python实战(9)——滤波降噪
  • C++“STL之String”
  • 说说缓存使用的具体场景都有哪些?缓存和数据库一致性问题该如何解决?缓存使用常见问题有哪些?
  • 融合表面信息和等变扩散的分子对接模型 SurfDock - 评测
  • Git的使用流程(详细教程)
  • NFT Insider #162:Cool Cats和Doodles或将推出代币
  • 线性表的三种常见查找算法(顺序查找、折半查找、分块查找)及算法分析
  • 无人机巡检在光伏电站中的应用优势
  • HarmonyOS NEXT版本Stage应用开发模型介绍(附视频讲解)
  • SWM221系列芯片之电机应用及控制
  • git的全通路线介绍
  • Mono里运行C#脚本19—get_runtime_by_version
  • stipple函数的坑......matlab绘制显著点
  • 【手搓一个脚本语言】六、用C语言抽象语法树AST计算表达式的值
  • 机加工行业制造执行MES系统-打造智能MES系统解决方案
  • 使用 Navicat 官方免费版来实现从 DAT 文件填充 MySQL 8 表
  • css3实现文字下滑波浪线