This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: 1. chapter 5 Problem 1: Since we can find the k- th value in each database by spec- ify a value k , we consider the two databases as two sorted arrays(Querying the database by specifying k is equivalent to get the k- th value in the sorted ar- ray) and our problem is equivalent to find the median value in two sorted ar- rays. We denote A [1 ,n ] ,B [1 ,n ] as the sorted array in increasing order and A [ k ] as the k- th element in the array. For brevity of our computation we assume that n = 2 s . First we compare A [ n/ 2] to B [ n/ 2]. Without loss of generality, assume that A [ n/ 2] < B [ n/ 2], then the elements A  ,...,A [ n/ 2] are smaller than n ele- ments, that is, A [ n/ 2] ,...,A [ n ] and B [ n/ 2] ,...,B [ n ]. Thus A  ,...,A [ n/ 2] cant be the median of the two databases. Similarly, B [ n/ 2] ,...,B [ n ] cant be the median of the two databases either. Note that m is the median value of A and B if and only if m is the median of A [ n/ 2] ,...,A [ n ] and B  ,...,B [ n/ 2](We delete the same number of numbers that are bigger than m and smaller than m ), that is, the n/ 2 smallest number of A [ n/ 2] ,...,A [ n ] and B  ,...,B [ n/ 2]. Hence the resulting algorithm is: Algorithm 1 Median-value( A [1 ,n ] ,B [1 ,n ] ,n ) if n = 1 then return min(A[n],B[n]); else if A [ n/ 2] > B [ n/ 2] Median-value( A [1 ,n/ 2] ,B [ n/ 2 ,n ] ,n/...
View Full Document