前端视角,去理解递归

47 阅读1分钟

初学算法,递归时,曾经尝试用人脑,把递归流程梳理,最后,发现是我自不量力了,重复是计算机擅长的。

分析思路

首先思路分析上,类似与高中物理的整体法和隔离发,先吧大问题拆分为独立子问题的等价式。

如果知道了最小子问题解,那么再逐层向上返回,即可

你如何去证明,其合理性呢

数学归纳法

1边界条件,可以理解为,某个条件成立

第二步类似于最终的递归返回值,就是任意条件,能得出 f(n)

递归的定义,

  1. 怎么证明,递归定义是合理的(清晰的原问题是什么,以及子问题是什么)

  2. 边界情况,是为了在数据规模最小时,返回答案

  3. 递归让人迷惑的点在于,递归调用解决子问题的过程

image.png

递归与迭代

递归是逆向,想找最终答案,但是不断逆向推导到最小子问题,再返回

递归函数定义--明确功能

边界情况处理,或者说最小子问题解集--

递归调用--目的是为了不断减小数据规模

函数返回--返回到当前层,也就是最外层调用的函数