(a) Carry out the Select algorithm on the following set, using k = 19 (return the element of rank 19). Show your steps! Ensure that you run the partition algorithm in such a way that you maintain the elements in their original relative order. 56; 78; 34; 19; 67; 32; 13; 12; 90; 92; 50; 51; 30; 1; 99; 58; 43; 42; 24; 65; 21; 25; 68; 69; 101 (b) Carry out the Randomized Select algorithm from class on the set of elements from part (a), using k = 19. Show your steps! When selecting a random pivot, suppose you always chose the last element in the array. Ensure that you run the partition algorithm in such a way that you maintain the elements in their original relative order
(a) Carry out the Select
19). Show your steps! Ensure that you run the partition algorithm in such a way that you maintain the
elements in their original relative order.
56; 78; 34; 19; 67; 32; 13; 12; 90; 92; 50; 51; 30; 1; 99; 58; 43; 42; 24; 65; 21; 25; 68; 69; 101
(b) Carry out the Randomized Select algorithm from class on the set of elements from part (a), using
k = 19. Show your steps! When selecting a random pivot, suppose you always chose the last element in
the array. Ensure that you run the partition algorithm in such a way that you maintain the elements in
their original relative order
Answer
So, basically the select algorithm is used to sort a given array or a list of integer elements. The concept behind select algorithm is Take a element from beginning compare it with its following elements and if you find a lesser one then replace it.
Given array: 22,50,79,4,6,31,40,29,20,47,35,92,41,67,46,99,90,29,12,6,57,60,65,30,25.
Step 1: take min element as 22. Now compare it with its following elements. We compare it with 50. Is 50<22 ? No, it is not. Then we will move to next element i.e .., 79 which is also bigger. Now we again move to next element i.e, 4 which is smaller element. So, Now as we have encountered a smaller element so we will swap 22 with 4 and now our min element will be 4, so that if we get another smaller element we can place it at first position.
4,50,79,22,6,31,40,29,20,47,35,92,41,67,46,99,90,29,12,6,57,60,65,30,25
Step 2: Now in order to check we will compare next element with 4. So that w can place more smaller element at first.
Step 3: Now as we are comparing elements we require two loops. So, now when our list is sorted we will return 19th element and we will get our result. In our case the 19th rank element is 60. So in order to understand better, below is the shared algorithm.
func sort(array,n) : {
for i in (0,k) : //we will pass k here to get the k rank element i.e., 19th in our ques
indexmin=i
valuemin=arr[i]
for j in range(i+1 ,n) :
if(arr[j]<valuemin):
indexmin=j
valuemin=arr[j]
swap(arr[i],arr[indexmin])
}}return (arr[k])
}
Step by step
Solved in 2 steps