Sample Algorithms Test 1

Question 1. (25 points)

Solve the following recurrence relation to get the general solution. You DO NOT need to solve for the ci constants. You may assume that n is a power of 5, i.e., n = 5k and log 5 n = k.

T(n) = 7T(n/5) - 12T(n/25) + n (log 5 n)2 + 3log 5 n, for n > 1.

Question 2. (25 points) 

for i := 1 to n do 

   j := n 

   while j 1 do 

      for k := i to j do 

         < something of > 

      end for 

      j := j / 4 

   end while 

end for 

Analyze the above algorithm to determine its theta notation, , or its best O( ) notation.

Assume that n is a power of 4.

Question 3. (10 points) Suppose that you have an algorithm that required 10 seconds to run on a problem size of 1000. How long would you expect the algorithm to run on a problem size of 10,000? (If you don't have a calculator, just write an equation for the answer.)

Question 4. (40 points)

Let A be an array indexed from 1 to n. Also, let A contains n different integer values that are sorted in ascending order (from smallest to largest). Give a divide-and-conquer algorithm that finds an index i such that A[i] = i (if one exists) and runs in O(log2 n) time. If such an index does not exist, then it should return -1. (Give an English description or a high-level language (C++, Ada, etc.) algorithm.)