Suppose you have two data sets, each of which contain n comparable elements. As an basic operation, you may ask one set to tell you the kth largest element of that set, for a value k you choose. Give an algorithm that, with O(log n) queries, determines the median value of the union of the two sets.
The Algorithm so something like this,
We can first search for m1 and M2 the median of the two list using the basic operation of getting a kth number (n/2,n+1/2th number in case of medium?
1) we can have the medians m1 and m2 of the input lists.
2) If m1 and m2 are the same, we can be consider it out of self from
return m1 (or m2)
3) If m1 is greater than m2, then median is present in one
of the below two subarrays.
a) second half of M1 (M1 to the highest in case of a sorted array but we can just work with median no need for calculating the sorted array)
b) first half of M2 (starting go M2)
4) If m2 is greater than m1, then median is present in one which is just opposite of what we have said.
5) Repeat the above process until size of both the subarrays becomes 2 that is we reach the size of 2 so that only we have both the median terms.
6) If size of the two arrays is 2 then,
the median.
Median = (max(array1[0], array2[0]) + min(array1[1], array2[1]))/2
Now on a avrage case we have N --> N/2 ---> N/4 and so on till size is two that is a complexity = O(logN)
If there is any doubts put in comments, hope it help
Suppose you have two data sets, each of which contain n comparable elements. As an basic...
(25pts) You are given two sorted lists of size m and n. Give an O(log m log n) time algorithm for computing the k-th smallest element in the union of the two lists Note that the only way you can access these values is through queries to the databases. Ina single query, you can specify a value k to one of the two databases, and the chosen database will return the k-th smallest value that it contains. Since queries are...
You are interested in analyzing some hard-to-obtain data from two separate databases. Each database contains n numerical values—so there are 2n values total—and you may assume that no two values are the same. You’d like to determine the median of this set of 2n values, which we will define here to be the nth smallest value. However, the only way you can access these values is through queries to the databases. In a single query, you can specify a value...
Youareinterestedinanalyzingsomehard-to-obtain data from two sepa- rate databases. Each database contains n numerical values—so there are 2n values total—and you may assume that no two values are the same. You’d like to determine the median of this set of 2n values, which we will define here to be the nth smallest value. However, the only way you can access these values is through queries to the databases. In a single query, you can specify a value k to one of the...
This part involves finding a new algorithm by yourself. You do NOT have to implement it with C++. You may just state the algorithm in pseudo-code. The problem is as follows: You have an integer array of n elements. You want to return true if there is a set of more than n/2 elements in the array with the same value, false otherwise. Notice that if the array is sorted (that is you are allowed to use a sorting algorithm),...
program in python
Randomness can be used to improve the performance of deterministic algorithms which need to make many choices. Rather than repeatedly making fixed, hard-coded choices, a pseudorandom number generator can be used to make dynamic, unbiased choices. If the benefits of "good" choices outweigh the costs of "bad" choices, a random selection of good and bad choices can improve the performance of an algorithm Let us explore this with the QUICKSELECT algorithm. Discovered by the influential computer science...
Suppose you have two binary search trees P and Q. Let P and Q be the number of elements inP and Q, and let hp and ho be the heights of P and Q. Assume that that is, hp ho < P IQ and A. Give a destructive algorithm for creating a binary search tree containing the union PUQ that runs in time O(|P2) in the worst case. B. Assume now that it is known that the largest element of...
Data Structures: For each of the following situations, name the best sorting algorithm we studied. (For one or two questions, there may be more than one answer deserving full credit, but you only need to give one answer for each.) (a) The array is mostly sorted already (a few elements are in the wrong place). (b) You need an O(n log n) sort even in the worst case and you cannot use any extra space except for a few local...
Problem 3 Suppose that you have a set of n large, orderable, objects, each of size q, so that it requires time e(a) to time to compute a hash function h(a) for any object and requires time e(g) to compare any two objects. Describe a compound data structure, built out of a heap and a hash table, that supports the following operations with the specified run times.. elt (x) Is x an element of the set? Expected run time O(g)....
program will enter data into two single dimension arrays (do not store duplicate values in arrays) program will find the union and intersection of the two arrays using one function program will find the symmetric difference of two arrays program will display the union, intersection, and symmetric difference */ short* input_data(short size); // function to dynamically allocate and array and enter data into the array void display_data(short *data, short size); // function to display data in an array void get_union_intersection(short...
3. (20 pts.) You are given two sorted lists of numbers with size m and n. Give an O(logn+ logm) time algorithm for computing the k-th smallest element in the union of the two lists. 4. (20 pts.) Solve the following recurrence relations and give a bound for each of them. CMPSC 465, Fall 2019, HW 2 (a) T(n) = 117(n/5)+13n!.3 (b) T(n) = 2T (n/4)+nlogn (c) T(n) = 5T (n/3) +log-n (d) T(n) = T(n/2) +1.5" (e) T(n) =...