I'm trying to find how long does each Fibonacci(n) takes in nanoseconds. The clock time in my code is always the same for all n. I think I make a mistake. How can I fix it?
Here is some of my output looks like:
0 used 3792 ns
1 used 3792 ns
1 used 3792 ns
2 used 3792 ns
...............
0 used 2455 ns
1 used 2455 ns
1 used 2455 ns
2 used 2455 ns
...............
0 used 2675 ns
1 used 2675 ns
1 used 2675 ns
2 used 2675 ns
class Fibonacci {
private static long startTime = System.nanoTime();
public static int fib(int n)
{
if (n <= 1)
return n;
return fib(n-1) + fib(n-2);
}
private static long endTime = System.nanoTime();
public static void main (String args[])
{
long time = (endTime - startTime);
for(int n = 0;n < 25; n++) {
System.out.println(fib(n) + " used " + time + " ns");
}
}
}