方法递归

声明: 本文主要作为作者的复习笔记,由于作者水平有限,难免有错误和不准确之处,欢迎读者批评指正.

方法递归

方法在执行过程中又调用自身的过程,称之为"递归"(一个函数自己调用自己);

什么时候能使用递归(什么场景下适合使用递归这种程序结构来解决问题)

同时满足以下三个条件:

  1. 一个大问题可以拆分为多个子问题;
  2. 拆分后的子问题和原问题,除了数据规模不同之外,解决的思路完全相同;
  3. 存在递归终止条件(拆分子问题是有限的,不可能无限拆分下去);

如何写出递归函数

一定要注意方法的语义(定义出来这个递归函数到底要解决什么问题),假设这个方法已经实现好了,我们只需要利用这个方法辅助我们解决问题即可.

递归:

  1. 递 => 拆分,归 => 返回;
  2. 根据自己调用自己的过程,不断将大问题拆分为小问题;
  3. 一直到终止条件开始一步步向回返回;

拓展

  1. 计算机运行从最底层的微观角度一步步向上走解决问题(自底向上),先不断解决子问题,依次向上解决原问题(例如动态规划算法);
  2. 人脑从宏观角度解决问题(自顶向下),思考问题是从最开始大问题拆分为子问题计算结果(回溯算法);
  3. 递归是学习数据结构和算法的钥匙;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值