CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack...

39
CSC 331 Review Game 1

Transcript of CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack...

Page 1: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

CSC 331 Review Game 1

Page 2: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

Teams

• Katie, Mark, Alex Z, Dan B., Zane• Dan C, Alex D, Dawn, Marshall, Zack• Colby, Benjamin, Lisa, Riley, Andrew• Catharine, Ryan, Jerry, Z, Lawrence• Michelle, Jacapo, Rohan, Alexis, Jamie• Patrick, Matt, Emily, Alex H, Hugh

Page 3: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

Individual Round

Page 4: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

1. Θ, Ω, or O?

• log10n2 = ___(log2n)

Page 5: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

2. Θ, Ω, or O?

• n! = ___(2n)

Page 6: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

3. Θ, Ω, or O?

• lgn = ___(√n)

Page 7: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

4. What’s the best running time?

• Given an array of n sorted Strings, find the first String that would occur after the word “Happy”.

Page 8: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

5. What’s the best running time?

• Given an array of n numbers that are NOT sorted and an integer k, find the kth smallest number in the array.

Page 9: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

6. What is the running time?

Alg first() is linearMYSTERY(A[1..n])

for i = 1 to n first(A[1..n])

Page 10: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

7. What is the running time?

Alg first() is linearMYSTERY(A[1..n])

for i = 1 to 10 first(A[1..n])

Page 11: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

8. What is the running time?

Alg first() is linear Alg second() is θ(nlgn)MYSTERY(A[1..n])

second(A[1..n])for i = 1 to n

for i = 1 to n/2first(A[1..n])

Page 12: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

9. What does the algorithm do?

MYSTERY(A[left..right])if (left=right) return 1;x = MYSTERY(A[left..right-1])return x+1

Page 13: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

10. What is the Recurrence Relation?

MYSTERY(A[left..right])if (left =right) return 1;x = MYSTERY(A[left..right-1])return x+1

Page 14: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

11.

• What does ENIGMA(8) print?ENIGMA(integer n):

if n = 1 PRINT 1else:

ENIGMA(n/2)PRINT n

Page 15: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

12.

• What is the recurrence relation?ENIGMA(integer n):

if n = 1 PRINT 1else:

ENIGMA(n/2)PRINT n

Page 16: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

13.

What does the algorithm do?SECRET(A[1..n], k)

if k = 1 return A[1]else

return SECRET(A[2..n],k-1)

Page 17: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

14.

What is the recurrence relation?SECRET(A[1..n], k)

if k = 1 return A[1]else

return SECRET(A[2..n],k-1)

Page 18: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

15. Solve using Master’s

• T(n)= 2T(n/2) + n

Page 19: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

16. Solve using Master’s

• T(n)= 3T(n/2) + n2

Page 20: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

17.

What does it mean to partition your data?

Page 21: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

18.

• A sort whose main operation is finding whether or not 2 elements are <, >, or = is called…

Page 22: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

19.

What does it mean for a sort to be stable?

Page 23: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

20.

What does it mean for a sort to be in-place?

Page 24: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

21.

• What is the worst-case running time for Quicksort? When does it happen?

Page 25: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

22.

• Give a time when you would prefer Insertion sort over Randomized Quicksort.

Page 26: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

23.

• Which sort has its best case when it is in reverse order?

Page 27: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

24.

• Quicksort’s recurrence relation is T(n) = 2T(n/2) + nWhere did that last n come from?

Page 28: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

25.

• What algorithm do I use?I want to find the median of a set of

100,000,000 numbers

Page 29: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

26.

What algorithm do I use?

I’m trying to find the record for “John Doe” from a set of records sorted by name.

Page 30: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

27.

• What algorithm do I use?I’m trying to quickly sort 2 million 10-digit

numbers. I have plenty of space but want to save time.

Page 31: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

28.

What is a heap?

Page 32: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

29.

• I have a heap with n nodes. What is its depth?

Page 33: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

30.

• What is the running time for heapsort?

Page 34: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

All-Play

Page 35: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

What is the running time?

Input Time1,000 2,0002,000 5,0003,000 10,0004,000 17,000

Page 36: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

• Alg A has running time of 2n+5. Alg B has a running time of n2. For what values of n should you use Alg A and for what values should you use Alg B?

Page 37: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

• Solve:T(n) = 2T(n-2)+1

Page 38: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

• Write pseudocode for a divide-and-conquer algorithm for finding the number of negatives in an array.

Page 39: CSC 331 Review Game 1. Teams Katie, Mark, Alex Z, Dan B., Zane Dan C, Alex D, Dawn, Marshall, Zack Colby, Benjamin, Lisa, Riley, Andrew Catharine, Ryan,

Write an algorithm

An array A[1..n] has a majority element if one element occurs in more than half of the entries. Design an O(nlgn) algorithm to decide if the array has a majority element and if so, what the element is. You cannot sort the array, or ask if A[i]>A[j], since comparisons are not supported on the array type. (For example, if the array were of GIF files.) You can, however, ask if A[i] = A[j].