Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save yclim95/92304decb766aebfefc0 to your computer and use it in GitHub Desktop.
Save yclim95/92304decb766aebfefc0 to your computer and use it in GitHub Desktop.
Edited to reduce the time taken to execute recursive for fibonacci
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