Java学习 (16) Java方法篇(03)递归
递归
-
递归就是就是自己调用自己
-
利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合
-
递归结构包括两个部分:
-
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
-
递归体:什么时候需要调用自身方法
-
语法实例
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n){
if (n == 1){
return 1;
}else {
return n*f(n-1);
}
}
/*run:
24
*/
递归与循环的区别
递归优缺点
- 优点:
- 代码简洁易读,处理小内容方便
- 缺点:
- 耗费内存
- 深度大会导致栈溢出
循环优缺点
- 优点:
- 速度快,能处理大内容
- 缺点:
- 有些场景不适合使用循环,算法固定。(处理大内容中不同深度的小内容会及其麻烦)