Quiz 1: and Analysis of Algorithms
Quiz 1: and Analysis of Algorithms
Quiz 1: and Analysis of Algorithms
Quiz 1
• Do not open this quiz booklet until you are directed to do so. Read all the instructions first.
• The quiz contains 7 problems, with multiple parts. You have 120 minutes to earn 120 points.
• This quiz booklet contains 12 pages, including this one.
""
• This quiz is closed book. You may use one double-sided letter (8 12 × 11"" ) or A4 crib sheet.
No calculators or programmable devices are permitted. Cell phones must be put away.
• Do not waste time deriving facts that we have studied. Just cite results from class.
• When we ask you to “give an algorithm” in this quiz, describe your algorithm in English
or pseudocode, and provide a short argument for correctness and running time. You do not
need to provide a diagram or example unless it helps make your explanation clearer.
• Do not spend too much time on any one problem. Generally, a problem’s point value is an
indication of how many minutes to spend on it.
• Show your work, as partial credit will be given. You will be graded not only on the correct
ness of your answer, but also on the clarity with which you express it. Please be neat.
• Good luck!
1 True or False 40 10
4 Amortized Analysis 15 1
6 Dynamic Programming 15 2
Total 120
Name:
(a) T F [4 points] With all equal-sized intervals, a greedy algorithm based on earliest
start time will always select the maximum number of compatible intervals.
(b) T F [4 points] The problem of weighted interval scheduling can be solved in O(n log n)
time using dynamic programming.
(c) T F [4 points] If we divide an array into groups of 3, find the median of each group,
recursively find the median of those medians, partition, and recurse, then we can
obtain a linear-time median-finding algorithm.
(d) T F [4 points] If we used the obvious Θ(n2 ) merge algorithm in the divide-and
conquer convex-hull algorithm, the overall time complexity would be Θ(n2 log n).
(e) T F [4 points] Van Emde Boas sort (where we insert all numbers, find the min, and
then repeatedly call S UCCESSOR) can be used to sort n = lg u numbers in O(lg u·
lg lg lg u) time.
6.046J/18.410J Quiz 1 Name 3
(f) T F [4 points] Van Emde Boas on n integers between 0 and u − 1 supports successor
queries in O(lg lg u) worst-case time using O(n) space.
(g) T F [4 points] In the potential method for amortized analysis, the potential energy
should never go negative.
(h) T F [4 points] The quicksort algorithm that uses linear-time median finding to run in
worst-case O(n log n) time requires Θ(n) auxiliary space.
(i) T F [4 points] Searching in a skip list takes Θ(log n) time with high probability, but
could take Ω(2n ) time with nonzero probability.
x A B C D
h1 (x) 1 0 1 1
h2 (x) 0 1 0 1
h3 (x) 2 2 1 0
6.046J/18.410J Quiz 1 Name 4
Ben Bitdiddle is trying to multiply two polynomials using the FFT. In his trivial example, Ben sets
C = A ∗ B = (1, 1),
So c represents 1 + 0 · x, which is clearly wrong. Point out Ben’s mistake in one sentence; no
calculation needed. (Ben swears he has calculated FFT F and inverse FFT F −1 correctly.)
6.046J/18.410J Quiz 1 Name 5
Give the fastest data structure you can for this problem, measured according to worst-case time.
The faster your data structure, the better.
Hint: Use a data structure you have seen in either 6.006 or 6.046 as a building block.
6.046J/18.410J Quiz 1 Name 6
Describe your algorithm and give the worse-case time complexity of the two operations. Then
carry out an amortized analysis to make I NSERT (x, S) run in amortized O(1) time, and R EMOVE
BOTTOM - HALF (S) run in amortized 0 time.
6.046J/18.410J Quiz 1 Name 7
(a) [5 points] Describe an O(n)-time randomized algorithm for testing whether p(x) ·
(d) [5 points] Design a randomized algorithm to check whether p(x) · q(x) = r(x) that is
correct with probability at least 1 − ε. Analyze your algorithm in terms of n and 1/ε.
6.046J/18.410J Quiz 1 Name 9
Because Prof. Child needs all four quadrants to be non-empty, she can only stand on cells (i, j)
where 1 < i < n and 1 < j < m.
(a) [10 points] Define TLi,j to be maximum tastiness value in the top-left quadrant of
algorithm to compute TLi,j , for all 1 < i < n and 1 < j < m, in O(nm) time.
(b) [5 points] Use the idea in part (a) to obtain an O(nm) algorithm to find the tastiest
dish.
6.046J/18.410J Quiz 1 Name 11
(c) [7 points] Give an algorithm that runs in O(lg(min{m, n})) time, for any m and n.
Don’t spend too much time on this question!
MIT OpenCourseWare
http://ocw.mit.edu
For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.