Guest User

Untitled

a guest
May 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. from statistics import mean
  2.  
  3.  
  4. def calculate_average_grades(assignments):
  5. """The order for this method is O(N^2)
  6. We have one iteration of N elements and another one but with a iteration of N inside
  7. 'grades = {}' -> O(1)
  8. 'for assignment in assignments' -> O(N)
  9. 'student = assignment.student.name' -> O(1)
  10. 'grades[student]' -> O(1)
  11. 'grades[student] = []' -> O(1)
  12. 'grades[student].append(assignment.grade)' -> O(1)
  13. 'for student in grades:'
  14. ' grades[student] = mean(grades[student])' -> O(N^2)
  15. 5*O(1) + O(N^2) + O(N), MAX(O(N), O(N^2)) = O(N^2)
  16. """
  17. grades = {}
  18.  
  19. for assignment in assignments:
  20. student = assignment.student.name
  21. try:
  22. grades[student]
  23. except KeyError:
  24. grades[student] = []
  25. finally:
  26. grades[student].append(assignment.grade)
  27.  
  28. for student in grades:
  29. grades[student] = mean(grades[student])
  30.  
  31. return grades
Add Comment
Please, Sign In to add comment