Test Yourself #1 Test Yourself #2 Question 1: The problem size is the number of people in the room. Question 2: Assume there are N people in the room.  In algorithm 1 you always ask 1 question.  In algorithm 2, the worst case is if no one has your birthday.  Here you have to ask every person to figure this out.  This is N questions.  In algorithm 3, the worst case is the same as algorithm 2.  The number of questions is 1 + 2 + 3 + ... + N-1 + N.  We showed before that this sum is N(N+1)/2. Question 3: Given the number of questions you can see that algorithm 1 is constant time, algorithm 2 is linear time, and algorithm 3 is quadratic time in the problem size. Test Yourself #3 Test Yourself #4 Test Yourself #5Answers to Self-Study Questions for Compleixty
| operation | Complexity | ||
| best | worst | average | |
| size | O(1) | O(1) | O(1) | 
| addAfter | O(1): add after last item because there is no current item or current is last item. Array is not full. | O(N): add after first item and/or array is full | O(N): assuming each item is equally likely to be current. | 
| addBefore | O(1): last item is current and array is not full | O(N): first item is current and/or array is full | O(N): assuming each item equally likely to be current | 
| removeCurrent | O(1): last item is current or thre is no current item | O(N): current is first item | O(N): assuming each item is equally likely to be current | 
| start | O(1) | O(1) | O(1) | 
| getCurrent | O(1): whether or not there is a current item | O(1): whether or not there is a current item | O(1): whether or not there is a current item | 
| advance | O(1): whether or not there is a current item | O(1): whether or not there is a current item | O(1): whether or not there is a current item | 
| isCurrent | O(1) | O(1) | O(1) |