Renamed code-a1. Appended optmized.
This commit is contained in:
@@ -1,7 +1,14 @@
|
||||
# Problem Statement: Write a program non-recursive and recursive program to calculate Fibonacci numbers and analyze their time and space complexity.
|
||||
|
||||
## NOTE: THIS IS A HEAVILY OPTIMIZED CODE FOR FIBONACCI.
|
||||
## NUMBER OF RECURSION CALLS (IN RECURSION) ARE LOWER THAN NUMBER OF ITERATIONS (IN ITERATION FUNCTION)
|
||||
|
||||
iteration_counter = 0
|
||||
recursion_counter = 0
|
||||
|
||||
# Non-recursion
|
||||
def fibonacci(n):
|
||||
global iteration_counter
|
||||
fib_series = []
|
||||
a = 0
|
||||
b = 1
|
||||
@@ -9,11 +16,14 @@ def fibonacci(n):
|
||||
for i in range(n):
|
||||
fib_series.append(a)
|
||||
a, b = b, a + b
|
||||
iteration_counter += 1
|
||||
|
||||
return fib_series
|
||||
|
||||
# Recursion
|
||||
def fibonacci_recursive(n):
|
||||
global recursion_counter
|
||||
recursion_counter += 1
|
||||
if n <= 0:
|
||||
return []
|
||||
elif n == 1:
|
||||
@@ -28,6 +38,9 @@ def fibonacci_recursive(n):
|
||||
# Non-recursion
|
||||
n = int(input("Enter total numbers to print in fibonacci series:\t"))
|
||||
print("Fibonacci Series (non-recusive):\t", fibonacci(n))
|
||||
print("Iteration counter:\t", iteration_counter)
|
||||
|
||||
# Recursion
|
||||
print("Fibonacci Series (recusive):\t\t", fibonacci_recursive(n))
|
||||
print("Recursion counter:\t", recursion_counter)
|
||||
|
||||
Reference in New Issue
Block a user