递归在程序语言中就是方法本身自己调用自己,而递归思想是算法的重要思想之一,就是利用递归来实现解决问题的算法。
递归也分为直接递归和间接递归。
一:什么是递归
1. 程序调用自身的编程技巧称为递归。
2. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法
二:递归结构包括两个部分:
1.递归结束条件:
什么时候并调用自身方法。如果没有条件,将陷入死 循环。
2.递归体:
什么时候需要调用自身方法。
递归算法 ▪
递归的优点:简单的程序
递归的缺点:
1.但是递归调用会占用大量的系统堆栈,内存耗用多,
2.在递归调用层次多时速度要比循环慢的多
递归的使用场合:
1.任何可用递归解决的问题也能使用迭代解决。
2. 当递归方法可以更加自然地反映问题,并且易于理解和调试,并且并强调效率 问题时,可以采用递归;
3.在要求高性能的情况下尽量避免使用递归,递归既花时间又耗内存
递归模板:
public void recursion(参数){
if(终止条件){
return;
}
recursion(参数);
}
例:使用递归计算1-100的累加和
/**
* 递归练习:使用递归计算1-100的累加和*/
public class AddRecursion {
public static void main(String[] args) {
System.out.println(sum(100));
}
public static int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n - 1);
}
}
}