我理解Big-O表示法,但我不知道如何为许多函数计算它.特别是,我一直试图弄清楚Fibonacci序列的幼稚版本的计算复杂性:
int Fibonacci(int n)
{
if (n <= 1)
return n;
else
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
Run Code Online (Sandbox Code Playgroud)
Fibonacci序列的计算复杂度是多少以及如何计算?
有人可以在C++中向我展示一个简单的尾递归函数吗?
为什么尾部递归更好,如果它甚至是?
除了尾递归之外还有哪些其他类型的递归?
我制作了这个代码..而且我需要充分利用它...我真的需要计算斐波那契数字的最佳表现..请帮助...
我已经阅读了一些这类计算的代码,我想我得到了最好的...
Avaliate this for me .. plz ..
ps:我真的需要BigInteger ..我会计算出庞大数字的斐波纳契
ps2:我用这个算法计算了一些大数字,我得到了很好的响应时间..但我需要知道它是否会更好
ps3:要运行此代码,您需要使用此VM参数-Xss16384k(StackSize)
public class Fibonacci {
private static BigInteger[] fibTmp = { BigInteger.valueOf(0), BigInteger.valueOf(1) };
public static BigInteger fibonacci(long v) {
BigInteger fib = BigInteger.valueOf(0);
if (v == 1) {
fib = BigInteger.valueOf(1);
} else if (v == 0) {
fib = BigInteger.valueOf(0);
} else {
BigInteger v1 = fibonacci(v - 1);
BigInteger v2 = fibTmp[(int) (v - 2)];
fib = v1.add(v2);
}
synchronized (fibTmp) {
if …Run Code Online (Sandbox Code Playgroud)