zoltanvi

Fibonacci number calculators speed comparison

Oct 17th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.69 KB | None | 0 0
  1. public class FibonacciSeries {
  2.  
  3.     public static void main(String[] args) {
  4.         long startTime, endTime;
  5.         double allTime;
  6.  
  7.         System.out.println("printFib fut...");
  8.         startTime = System.nanoTime();
  9.         System.out.print(1);
  10.         printfib(40);
  11.         endTime = System.nanoTime();
  12.         allTime = (endTime - startTime);
  13.         System.out.println("\n eltelt idő: " + allTime + " ns");
  14.  
  15.         System.out.println("\nrekurzív fib fut...");
  16.         startTime = System.nanoTime();
  17.         System.out.println("eredmény: " + fib(40));
  18.         endTime = System.nanoTime();
  19.         allTime = (endTime - startTime);
  20.         System.out.println("eltelt idő: " + allTime + " ns");
  21.  
  22.         System.out.println("\n ciklusos fib2 fut...");
  23.         startTime = System.nanoTime();
  24.         System.out.println("eredmény: " + fib2(40));
  25.         endTime = System.nanoTime();
  26.         allTime = (endTime - startTime);
  27.         System.out.println("eltelt idő: " + allTime + " ns");
  28.  
  29.  
  30.     }
  31.  
  32.     private static int fib(int a){
  33.         if(a == 0 || a == 1){
  34.             return a;
  35.         }
  36.         return fib(a-1) + fib(a - 2);
  37.     }
  38.  
  39.  
  40.     static int n1 = 0, n2 = 1, n3 = 0;
  41.     private static void printfib(int a){
  42.             if(a > 0){
  43.                 n3 = n1 + n2;
  44.                 n1 = n2;
  45.                 n2 = n3;
  46.                 System.out.print(", " + n3);
  47.                 printfib(a - 1);
  48.             }
  49.     }
  50.  
  51.     private static int fib2(int n){
  52.         int F = 0;
  53.         int prev = 1;
  54.         int next;
  55.         for(int i=0; i < n; i++){
  56.             next = F + prev;
  57.             prev = F;
  58.             F = next;
  59.         }
  60.         return F;
  61.     }
  62.  
  63. }
Add Comment
Please, Sign In to add comment