递归:原理、效率与应用边界
递归概述
递归是实现复杂算法的强大工具,但也可能导致算法性能不佳。我们将通过斐波那契数列、字符串排列等例子,深入分析递归何时有益、何时低效,同时探讨计算的极限。
斐波那契数列的递归与迭代实现
斐波那契数列是一个经典的数学序列,每个值是前两个值的和,其前十个值为:1, 1, 2, 3, 5, 8, 13, 21, 34, 55。我们可以用递归和迭代两种方式来计算斐波那契数列。
递归实现
import java.util.Scanner;
/**
* This program computes Fibonacci numbers using a recursive method.
*/
public class RecursiveFib
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter n: ");
int n = in.nextInt();
for (int i = 1; i <= n; i++)
{
long f = fib(i);
System.out.println("fib(" + i + ") = " + f);
}
}
/**
* Computes a Fibonacci num
订阅专栏 解锁全文
990

被折叠的 条评论
为什么被折叠?



