consider the following modification to the mergesort algorithm divide the input arra 3599203
Question 1 [4 points]
Express the following function in terms of Big-oh notation:
1. (n
3
)/1000 – 100 * n
2 + 50
2. n
a + n
b
(a > b and b > 0)
Question 2 [10 points]
Consider the following modification to the MergeSort algorithm: divide the input array into thirds (rather than halves), recursively sort each third, and finally
combine the results using a three-way Merge subroutine. What is the running
time of this algorithm as a function of the length n of the input array, ignoring
the constant factors and lowest order terms ? [Hint: the Merge subroutine can
still be implemented so that the number of operations is only linear in the sum
of the input array length.]
Question 3 [10 points]
Suppose you are given k sorted arrays, each with n elements, and you want to
combine them into a single array of kn elements. Our approach is to use the
linear time Merge subroutine [O(n) runtime] repeatedly, first merging the first
two arrays, then merging the result with the third array, then with the fourth
array, and so on until you merge in the k-th and the final input array. What is
the running time taken by this successive merging algorithm, as a function of k
and n, ignoring constant factors and lower-order terms.
Question 4 [10 points]
Consider again the problem if merging k sorted length-n arrays into a single
sorted length-kn array. Consider the algorithm that first divides the k arrays
into k/2 pairs of arrays, and use the merge subroutine to combine each pair,
resulting in k/2 sorted length-2n arrays, The algorithm repeats this step until
there is only one length-kn sorted array. What is the running time taken by
this successive merging algorithm, as a function of k and n, ignoring constant
Attachments: