递归介绍

Posted 薰衣草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归介绍相关的知识,希望对你有一定的参考价值。

递归函数:调用自身的函数。在函数体内部直接或间接地调用自身。

递归函数的理解:

1.递归其实就是把问题传递下去,直到找到某个确切的结果后,再一步一步回归初始问题本身的过程。

2.举例:我想知道张三的身高,张三没直接告诉我他多高,直说比张四高1cm;我只好去问张四,张四说比张五高1cm;张五比张六高1cm;我一直问下去,张七,张八,张九,终于知道了张十是170cm。这个过程就是把问题传递下去的过程!并找到了一个结果,张十是170cm。

3.那么我最初的问题,是想知道张三身高,需要再把问题回归,张十。。。到张三。

递归机制:

1.调用自身,相同的处理逻辑。

但是起点或者状态不同。问的都是年龄(逻辑),问的是不同的人(起点、状态不同)。

2.独立机制。函数之间需要独立,不能嵌套,导致不能到达出口。就像我问张三年龄,张三说比张四大一岁,张四不能说比张三小一岁,这样就会陷入死循环,不能到达出口。

虽然递归函数执行的代码一样。

3.需要一个出口。

递归优缺点:

1.简化程序设计,提高易读性。

2.递归增加了系统开销。时间上,执行调用与返回的额外工作要占用CPU时间。空间上,随着每递归一次,栈内存就多占用一截。

其实每个递归都可以用for循环实现,可以减少时间复杂度。

递归构成:

1.需要有相同的处理逻辑。

2.递归函数的调用。

3.需要有函数结束语句。递归出口。

4条件判断

选择继续自调用还是结束语句。

5.递归节点需要向结束条件靠近,并最终达到结束条件


以上是关于递归介绍的主要内容,如果未能解决你的问题,请参考以下文章

创建一个叫做People的类: 属性:姓名年龄性别身高 行为:说话计算加法改名 编写能为所有属性赋值的构造方法; 创建主类: 创建一个对象:名叫“张三”,性别“男”,年龄18岁,身高1

张三李四

创建一个叫做People的类: 属性:姓名年龄性别身高 行为:说话计算加法改名 编写能为所有属性赋值的构造方法; 创建主类: 创建一个对象:名叫“张三”,性别“男”,年龄18岁,

java基础之类与对象

类的基本概念

声明四个变量,姓名年龄性别和身高,打印出来。