5. Recall the median-of-medians quickselect algorithm presented in class: algorithm MoMSELECT(k, S, 1, h): if h 25 then use brute force else m← - (h − 1)/5 - for i = 1 to m do M; ← MEDIANOFFIVE(S1+5i-4...1+5i) mom (a) (b) S1 MOMSELECT(m/2, M, 1,m) Smom p← PARTITION(S,1,h) if k = p then return Sk else if k < p then MOMSELECT(k, S, 1, p − 1) else MOMSELECT(k, S, p + 1, h) Refine the lines (a) and (b) of the algorithm so that the array M or medians does not require additional storage space. Explain how your modifications maintain the correctness and running time of the algorithm.

icon
Related questions
Question

Question 5

5. Recall the median-of-medians quickselect algorithm presented in class:
algorithm MoMSELECT(k, S, 1, h):
if h 25 then use brute force
else
m← - (h − 1)/5
-
for i = 1 to m do M; ← MEDIANOFFIVE(S1+5i-4...1+5i)
mom
(a)
(b)
S1
MOMSELECT(m/2, M, 1,m)
Smom
p← PARTITION(S,1,h)
if k = p then return Sk
else if k < p then MOMSELECT(k, S, 1, p − 1)
else MOMSELECT(k, S, p + 1, h)
Refine the lines (a) and (b) of the algorithm so that the array M or medians does not require
additional storage space. Explain how your modifications maintain the correctness and
running time of the algorithm.
Transcribed Image Text:5. Recall the median-of-medians quickselect algorithm presented in class: algorithm MoMSELECT(k, S, 1, h): if h 25 then use brute force else m← - (h − 1)/5 - for i = 1 to m do M; ← MEDIANOFFIVE(S1+5i-4...1+5i) mom (a) (b) S1 MOMSELECT(m/2, M, 1,m) Smom p← PARTITION(S,1,h) if k = p then return Sk else if k < p then MOMSELECT(k, S, 1, p − 1) else MOMSELECT(k, S, p + 1, h) Refine the lines (a) and (b) of the algorithm so that the array M or medians does not require additional storage space. Explain how your modifications maintain the correctness and running time of the algorithm.
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer