Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

学习笔记

对递归有了初步对了解,在递归模版上写代码比较方便,在算法正确的情况下能保证程序的正确性。

递归调用在处理本层的逻辑时也可以放在下探到下一层的后面,有点类似与二叉树前序与后序的遍历

  1. 如放在下探到下一层的前面,像是一种自顶向下的访问路径
  2. 如放在下探到下一层的后面,像是一种自底向上的访问路径 在递归树有分叉与分治相同,需要合并下一层的结果。

在思考递归算法时,要避免人肉递归树,容易陷进去出不来。在思考递归算法时,重要的是确定函数的功能, 用类似与数学归纳法的方法去思考问题。

在整个递归树中,只要关注三层就可以:

  1. 第一层,初始状态,相当于数学归纳法的 n=1;
  2. 最后一层,也就是递归的退出情况,terminator;
  3. 中间任意一层,如第 n 层,这时只要假定 n+1 层的结果已经拿到了的情况下,当前层要做什么处理。