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.
|
# 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
|
# Non-recursion
|
||||||
def fibonacci(n):
|
def fibonacci(n):
|
||||||
|
global iteration_counter
|
||||||
fib_series = []
|
fib_series = []
|
||||||
a = 0
|
a = 0
|
||||||
b = 1
|
b = 1
|
||||||
@@ -9,11 +16,14 @@ def fibonacci(n):
|
|||||||
for i in range(n):
|
for i in range(n):
|
||||||
fib_series.append(a)
|
fib_series.append(a)
|
||||||
a, b = b, a + b
|
a, b = b, a + b
|
||||||
|
iteration_counter += 1
|
||||||
|
|
||||||
return fib_series
|
return fib_series
|
||||||
|
|
||||||
# Recursion
|
# Recursion
|
||||||
def fibonacci_recursive(n):
|
def fibonacci_recursive(n):
|
||||||
|
global recursion_counter
|
||||||
|
recursion_counter += 1
|
||||||
if n <= 0:
|
if n <= 0:
|
||||||
return []
|
return []
|
||||||
elif n == 1:
|
elif n == 1:
|
||||||
@@ -28,6 +38,9 @@ def fibonacci_recursive(n):
|
|||||||
# Non-recursion
|
# Non-recursion
|
||||||
n = int(input("Enter total numbers to print in fibonacci series:\t"))
|
n = int(input("Enter total numbers to print in fibonacci series:\t"))
|
||||||
print("Fibonacci Series (non-recusive):\t", fibonacci(n))
|
print("Fibonacci Series (non-recusive):\t", fibonacci(n))
|
||||||
|
print("Iteration counter:\t", iteration_counter)
|
||||||
|
|
||||||
# Recursion
|
# Recursion
|
||||||
print("Fibonacci Series (recusive):\t\t", fibonacci_recursive(n))
|
print("Fibonacci Series (recusive):\t\t", fibonacci_recursive(n))
|
||||||
|
print("Recursion counter:\t", recursion_counter)
|
||||||
|
|
||||||
Reference in New Issue
Block a user