Java初学者笔记十四:递归
2021/8/30 17:36:30
本文主要是介绍Java初学者笔记十四:递归,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
递归
- 递归:A方法调用A方法
- 利用递归可以用简单的程序来解决一些复杂的问题。通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归只需要少量的程序就可描述出解题过程所需要的多次重复计算,可大大减少程序的代码量。递归的能力在于用有限的语句来定义对象的无限合集。
- 递归结构包括两个部分:
- 递归头:什么时候不调用自身方法。{如果没有头,则会陷入死循环)
- 递归体:什么时候需要调用自身方法。
public class Demo { public static void main(String[] args) { System.out.println(fac(5)); } //阶乘 public static int fac(int n){ if(n == 1){ //递归头(结束条件) return 1; }else{ return n*fac(n-1); //递归体 } } }
-
缺点 :
-
效率:递归由于是方法自己调用自己,每一次调用方法时,都需要在内存栈中分配空间以保存参数、返回地址以及变量,而往栈中压入数据和弹出数据都需要时间,所以递归耗时更多!
-
性能:栈可能溢出,每一次方法的调用都会在内存栈中分配内存,而每个进程的栈的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致栈溢出!
-
这篇关于Java初学者笔记十四:递归的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?