diff --git a/Codes/Code-A1.py b/Codes/Code-A1-optimized.py similarity index 68% rename from Codes/Code-A1.py rename to Codes/Code-A1-optimized.py index 2c034c2..fb93bd8 100755 --- a/Codes/Code-A1.py +++ b/Codes/Code-A1-optimized.py @@ -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) +