以下函数的 Big-O 运行时间是多少?解释。
static int fib(int n){
if (n <= 2)
return 1;
else
return fib(n-1) + fib(n-2)
}
另外,您将如何使用更快的 Big-O 运行时迭代地重写 fib(int n) 函数?这是否是 O(n) 的最佳方式:
public static int fibonacci (int n){
int previous = -1;
int result = 1;
for (int i = 0; i <= n; ++i)
{
int sum = result + previous;
previous = result;
result = sum;
}
return result;
}
}