在JAVA中啥是递归?有啥用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JAVA中啥是递归?有啥用?相关的知识,希望对你有一定的参考价值。
我看马士兵老师视频教学的第二章一上来就说递归,我都晕了,听都听不懂。
Java方法递归是指在一个方法的内部调用自身的过程,以此类推就是java方法递归的理解思想,具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。因此,java方法递归的两个条件就是,一通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式;二存在一种简单情境,可以使递归在简单情境下退出。 参考技术A程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
递归的三个条件:
边界条件
递归前进段
递归返回段,当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
比如:
地上有一块不知道多重的货物需要工人来搬运, 而每个工人每次只能搬运100斤.
这时候你怎么做?
可以这样:
1. 声明一个工人类
2. 声明一个工人工厂类
3. 在执行类中:
3.1 从工厂类中得到一个工人, 存入集合中
3.2 使用这个集合中的工人尝试去搬动货物
3.3.1 如果搬运成功, 程序结束
3.4.2 如果搬运失败, 再次执行3.1
【解释】:过程3就是递归调用
希望能帮助你 参考技术C 在方法中呼叫自身同名方法,而呼叫者本身会先被置入内存堆栈中,说白了就是在方法中重新调用自己!!!有什么不明白的可以继续问我。 参考技术D
简单的说:递归就是自己调用自己,例如,斐波那契数列的递归算法
请问JAVA中啥是集合,和数组比有啥区别呢?谢谢
请问JAVA中什么是集合,和数组比有什么区别呢?谢谢
例如: 创建数组 String[] str= new String[3]; int[] arr=new int[3];创建集合 List list=new ArrayList(); //创建数组声明了类型
我相信你可以既直接百度到比较详细的讲解.. 参考技术A 数组是集合是一种具体形式!
以上是关于在JAVA中啥是递归?有啥用?的主要内容,如果未能解决你的问题,请参考以下文章
c语言中啥是类(class),啥是结构。两者有啥区别?详细点。书上不太清楚。。谢谢