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) |