递归笔记

来源:互联网 发布:看门狗软件下载 编辑:程序博客网 时间:2024/05/01 21:52

1.递归满足的条件:

 1)必须能够鉴别出一个简单情景,且该情景的答案是容易确定的。

 2)必须能够确认一个递归的分解方式,能够将问题的复杂实例分解为更小的、具有相同形式的问题。

2.递归函数的模板:

 

3.交互递归:为了做到递归,函数必须在其执行中的某点调用自己。如果某个函数被细分成几个子函数,那么可以在更深的嵌套层次上应用递归调用。例如,如果函数f调用g,反过来g又调用f,这些函数的调用仍被看作是递归的。因为函数互相调用,所以称为交互递归。

4.利用包装函数解决原问题与子问题不对称的情况:将原问题定义为一个包装函数,然后调用另一个辅助函数来解决更普通的问题。

5.如何避免递归中常见的错误:

l 检验递归实现是不是以检查简单情景开始。

l 是否正确地解决了简单情景

l 递归分解是否使问题更简单了

l 简化的过程是不是逐渐地达到了简单情景,或者是不是遗漏了一些可能性

l 函数中的递归调用是不是表示了在形式上和初始问题真的完全相同的子问题

l 是否能够将子问题重新组装称为原问题?

6.回溯问题一般都可以用递归的形式解决,函数模板:

 

7.链表的递归操作:

 

0 0
原创粉丝点击