次の関数の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;
}
}