Last active
January 13, 2016 18:48
-
-
Save yclim95/92304decb766aebfefc0 to your computer and use it in GitHub Desktop.
Edited to reduce the time taken to execute recursive for fibonacci
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'benchmark' | |
def fibonacci_iterative(n) | |
return 0 if n==0 | |
return 1 if n==1 | |
second_previous_num=0 | |
first_previous_num=1 | |
until n == 1 | |
sum_of_two_num= first_previous_num + second_previous_num #if n==2, sum_of_two_num=1 | |
second_previous_num=first_previous_num #if n==2, second_previous_num=1 | |
first_previous_num=sum_of_two_num #if n==2, first_previous_num=1 | |
n-=1 | |
end | |
sum_of_two_num # return 1 | |
end | |
Benchmark.bm {|x| # benchmarking for iterative | |
x.report{fibonacci_iterative(15)} | |
x.report{fibonacci_iterative(20)} | |
x.report{fibonacci_iterative(30)} | |
} | |
def fibonacci_recursive(n) | |
return 0 if n == 0 | |
return 1 if n == 1 | |
fibonacci_recursive(n-1)+fibonacci_recursive(n-2) | |
end | |
fibonacci_recursive_list=[10,100,1000] | |
Benchmark.bm {|x| # benchmarking for recursive | |
x.report{fibonacci_recursive(15)} | |
x.report{fibonacci_recursive(20)} | |
x.report{fibonacci_recursive(30)} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment