递归简单学习
递归是一种方法(函数)调用自已的编程技术,这听起来似乎有点奇怪,或者甚至像是一个灾难性的错误,但是,递归在编程中却是最有趣,又有惊人高效的技术之一。
就像拽着自己的鞋带拨高一样(你确实有鞋带,是吗?),在第一次遇到递昭归时,它似乎让人觉得难人置信。然而,递归不仅可以解决特定的问题,而且它也为解决很多问题
提供了一个独特的概念上的框架。
阶乘问题:
package com.java4;
public class FactorialTest
{
public static void main(String[] args)
{
System.out.println(factorial(4));
}
public static int factorial(int n)
{
int result;
if(n==1)
{
return 1;
}
else
{
result=n*factorial(n-1);
}
return result;
}
}
斐波那契数列:
package com.java4;
public class FibonacciTest
{
public static void main(String[] args)
{
System.out.println(fibonacci(8));
}
public static int fibonacci(int n)
{
int result = 0;
if(n==0)
{
return 0;
}
if(n==1)
{
return 1;
}
else
{
result = fibonacci(n-1)+fibonacci(n-2);
}
return result;
}
}
还有一个比较有点的问题就是Hanoi塔问题,也是比较经典的问题。
排序算法中的快速排序也是运用了递归思想。