Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from statistics import mean
- def calculate_average_grades(assignments):
- """The order for this method is O(N^2)
- We have one iteration of N elements and another one but with a iteration of N inside
- 'grades = {}' -> O(1)
- 'for assignment in assignments' -> O(N)
- 'student = assignment.student.name' -> O(1)
- 'grades[student]' -> O(1)
- 'grades[student] = []' -> O(1)
- 'grades[student].append(assignment.grade)' -> O(1)
- 'for student in grades:'
- ' grades[student] = mean(grades[student])' -> O(N^2)
- 5*O(1) + O(N^2) + O(N), MAX(O(N), O(N^2)) = O(N^2)
- """
- grades = {}
- for assignment in assignments:
- student = assignment.student.name
- try:
- grades[student]
- except KeyError:
- grades[student] = []
- finally:
- grades[student].append(assignment.grade)
- for student in grades:
- grades[student] = mean(grades[student])
- return grades
Add Comment
Please, Sign In to add comment