Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

学习笔记

一、递归学习总结

1.要明确函数的功能

对于递归,一个最重要的事情就是要明确这个函数的功能。当写一个递归函数的时候,先不要管函数里面的代码是什么,而要先明确这个函数是实现什么功能的。

2. 要明确递归的结束条件

所谓递归,就是会在函数的内部逻辑代码中,调用这个函数本身。因此必须在函数内部明确递归的结束递归条件,否则函数会一直调用自己形成死循环。

3. 要找到函数的等价关系式

递归的第三个步骤就是要不断地缩小参数的范围,缩小之后就可以通过一些辅助的变量或操作使原函数的结果不变。

二、回溯算法学习总结

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就回溯返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为回溯点。许多复杂的,规模较大的问题都可以使用回溯法。

回溯算法和递归紧密的联系,而递归和栈有紧密关联。我们可以将递归看做一次次入栈出栈的过程,对于回溯算法则是一种参考二叉树的遍历过程中的产生的算法处理方式。在二叉树使用遍历的处理也同样用到了递归和回溯的深度优先dfs的处理方案。

后续待补充--