week 2 time complixty
import time
import sys
# Employee Class
class Employee:
def __init__(self, emp_id, name, salary):
self.emp_id = emp_id
self.name = name
self.salary = salary
# Employee ADT Class
class EmployeeADT:
def __init__(self):
self.employees = []
# Add Employee
def add_employee(self, emp):
start = time.time()
self.employees.append(emp) # O(1)
end = time.time()
print("Added employee (Time:", round(end-start,6), "s, Space:", sys.getsizeof(emp), "bytes)")
# Remove Employee
def remove_employee(self, emp_id):
start = time.time()
for i, emp in enumerate(self.employees): # O(n)
if emp.emp_id == emp_id:
self.employees.pop(i)
end = time.time()
print("Removed employee (Time:", round(end-start,6), "s)")
return
end = time.time()
print("Employee not found (Time:", round(end-start,6), "s)")
# Display Employees
def display_employees(self):
start = time.time()
for emp in self.employees: # O(n)
print(emp.emp_id, emp.name, emp.salary)
end = time.time()
print("Display employees (Time:", round(end-start,6), "s)")
# Example usage ADT
print("-----Using Employee ADT-----")
adt = EmployeeADT()
adt.add_employee(Employee(1, "Alice", 50000))
adt.add_employee(Employee(2, "Bob", 60000))
adt.display_employees()
adt.remove_employee(1)
adt.display_employees()
Comments
Post a Comment