`

Java算法:递归算法

阅读更多
递归算法时通过解决相同问题的一个或几个小例子来解决问题的算法。在java中,实现递归方法就是调用自身的方法。

public class Recursion {

	static int factorial(int n) {
		if(n == 0) {
			return 1;
		}
		return n * factorial(n-1);
	}
	
	static int jiecheng(int n) {
		int t =1;
		for(int i=1; i<=n; i++) {
			t = t*i;
		}
		return t;
	}
	
	public static void main(String[] args) {
		System.out.println(Recursion.factorial(5));//阶乘
		System.out.println(Recursion.jiecheng(5)); //阶乘
	}

}


是等价的,一个递归程序总可以转换成执行相同计算的非递归程序。同样,可以用递归来表示设计循环的任何计算。使用递归能以简洁的形式表达复杂的算法,且不失效率。如:阶乘函数的递归实现可以避免使用局部变量。递归的开销在于编程系统中支持方法调用的机制,它使用了一个等同的内嵌堆栈。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics