Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Consider the algorithm below, which accepts an array data and an integer r and returns the r^th smallest value in the array. Input:data:array of integers
Consider the algorithm below, which accepts an array data and an integer r and returns the r^th smallest value in the array. Input:data:array of integers Input:n:size of data Input:r:desired rank to search for:must be between 1 and n, inclusive Output:r^th smallest value in data:i.e., a value in data such that exactly r - 1 other values are smaller 1 Algorithm:FindRank(data, r) 2 if n = 1 then 3 | return data [1] 4 end 5 Let pivot be a randomly selected value in data 6 Partition data into values less than pivot and greaterthanorequalto pivot, as in QuickSort 7 Insert the pivot in between the "small" and "large" parts of array 8 Let p be the new location of the pivot 9 if p = r then 10 | return pivot 11 else if p > r then 12 | return FindRank(data[1..p - 1], r) 13 else 14 | return FindRank(data[p + 1..n], r - p) 15 end Prove that r - p must be between 1 and the length of data[p + 1..n], inclusive, when line 14 is executed
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started