State two different self-reductions for the sum problem

Assignment Help Data Structure & Algorithms
Reference no: EM13905293

Problem 1:

1. For this problem consider the problem of finding the maximum element in a list of integers.

Maximum Integer in a List (MAX)

Input:A List of integers A|a.....b|.

Output: A[i] for some a ≤ i ≤ b such that A[i] ≥ A[j] for all a ≤ j ≤ b

Let M (A[a . . . b]) represent the output of the MAX problem on input A[a . . . b]. Let max(a, b) be a simple function that returns the maximum of two elements. Let m = [a+b]/2 be the midpoint between a and b, let t1 = [a+b/3] be the point one third of the distance from a to b, and let t2 = [2(a+b)/3] be the point two thirds of the distance from a to b.

1. Below is a self-reduction for the MAX problem. State a recursive algorithm using pseudocode for finding the maximum element based on this self-reduction.

M (A[a . . . b]) =  A(a) if a =b  

                         max(A[a], M (A[a + 1 . . . b])) if a < b

2. Using the same reduction as part 1 now state a recurrence T (n) that expresses the worst case run time of the recursive algorithm. Find a similar recurrence in your notes and state the tight bound on T (n).

3. Below is a self-reduction for the MAX problem. State a recursive algorithm using pseu- docode for finding the maximum element based on this self-reduction.

M (A[a . . . b]) =  -∞      if a > b

                          A[a]   if a = b

                         max(M (A[a . . . t1]), max(M (A[t1 + 1 . . . t2]), M (A[t2 + 1 . . . b]))) if a < b

4. Using the same reduction as part 3 now state a recurrence T (n) that expresses the worst case run time of the recursive algorithm. You do not need to formally prove your recurrence, but you have to show that it is a reasonable guess by using a recursion tree or by the repeated substitution method. Hint: assume that n is a power of 3.

Problem 2:

For this problem consider the problem of finding the sum of a list of integers.

Sum of all Integers in a list (SUM)

Input: A List of Integers A[a...b]

Output: s = i=ab A[i].

Let S(A[a . . . b]) represent the output of the SUM problem on input A[a . . . b].

1. State two different self-reductions for the SUM problem. Use the self-reduction examples from the lectures as a guide.

2. Give recursive algorithms based on your divide-and-conquer self-reductions to solve the SUM problem.

3. What are the worst-case runtimes of the solutions you have generated. (Just state the runtimes. You do not need to show your work.)

Problem 3:

Consider the following recurrence T (n):

T(n) = c if n = 1

          T [n/2] + T(|n/4|) + 4n    if n > 1

1. Use the recursion tree or repeated substitution method to come up with a good guess for a bound g (n) on the recurrence T (n).

2. State and prove by induction a theorem showing T (n) ∈ O(g (n)).

3. State and prove by induction a theorem showing T (n) ∈ ?(g (n)).

Consider the following recurrence T (n):

T (n) =   c   if n = 1

            T ([n/2]) + T ([n/4]) + 4n   if n > 1

1. Draw the first six levels of the recursion tree by drawing all recursive calls of the same size on the same level. Make sure on each level you indicate the size of the recursive call and the number of recursive calls.

2. Express the cost of all levels of the recursion tree as a sum over the cost of each level of the recursion tree.

3. Give a function g (n) and show it is an upper bound on the sum.

4. State and prove by induction a theorem showing T (n) ∈ O(g (n)).

5. State and prove by induction a theorem showing T (n) ∈ ?(g (n)).

Problem 4:

CHALLENGE

Consider the following observation on the randomized Quicksort algorithm. Because the pivot is chosen uniformly at random among the n input element, with probability 1/2 the chosen pivot's position on the sorted list will be between n/4 and 3n/4 (i.e. a good pivot), and with probability 1/2 the chosen pivot's position on the sorted list will be between 1 and n/4 or between 3n/4 and n (i.e. a bad pivot).

1. State a recurrence that expresses the worst case for bad pivots.

2. State a recurrence that expresses the worst case for good pivots.

3. State a recurrence that expresses the expected worst case by combining the first two recurrences.

4. Prove by induction that your recurrence is Θ(n log n).

Reference no: EM13905293

Questions Cloud

Calculate the company''s net sales for the year : Barkley Company's adjusted trial balance on March 31, 2013, its fiscal year end, follows.
Discuss the available technologies for dewatering sludge : Discuss the available technologies for dewatering sludge
Who knows about the t test for a single sample : The next table shows the results of this independent t-test. At the .05 significance level, can we conclude that there is a difference in their mean times? Explain these results to a person who knows about the t test for a single sample but is unf..
Cultural diversity of an hr department : Prepare a report on the cultural diversity of an HR department in a multi location IT company. Examine the challenges it faces in the changed business scenario.
State two different self-reductions for the sum problem : State two different self-reductions for the SUM problem and give recursive algorithms based on your divide-and-conquer self-reductions to solve the SUM problem.
Organization and suggest methods : Analyse and appraise the quality circle movement in a service organization and suggest methods for its enhancement.
Acquisition or destruction of assets : "The function of Financial Management is to review and control decisions to commit or recommit funds to new or ongoing uses. Thus in addition to raising funds, financial Management is directly concerned with production, marketing and other functio..
The company makes all purchases on credit, and its suppliers : Use the data for Barkley Company in Problem 5-4 to complete the following requirements. In Problem 5-4, Barkley Company's adjusted trial balance on March 31, 2013, its fiscal year end, follows.
Defectives and three defectives in a consignment : The blades are supplied in a packet of 10. Use Poisson distribution to calculate the approximate number of packets containing blades with no defective, one defective, two defectives and three defectives in a consignment of 10,000 packets.

Reviews

Write a Review

Data Structure & Algorithms Questions & Answers

  Create a separate hierarchy chart

How would you create a separate hierarchy chart to support the process of withdrawing from a class

  Choose a combination of meaningful data structures

Describe a mechanism to access the telephone customer records by telephone #. Assume that we have a huge data in hand, say a million records or so.

  Describe purpose of queue in breadth-first traversal

Describe the purpose of queue in breadth-first traversal? Assume you had function call displayAtDepthN, which when given tree and depth would display only nodes at that depth.

  Creating application - two dimensional array

Make an application that either sums or averages rows or columns of a 2-dimensional array depending on user choices.

  Write algorithm to calculate the volume of water

Write an algorithm to calculate the volume of water in cubic feet, flowing through pipe of diameter d in feet, with a velocity of v feet per second.

  Draw flowchart to print average for each student

Draw a flowchart to print the average for each student in a class. Input. Input consists of student records each containing a student's name(STUDENT-NAME), score for first test(TEST), score for second test(TEST2), and score for third test(TEST3)..

  Let t be the degree of a btree

Let t be the degree of a BTree. Suppose the size of each object, including the key, stored in the tree is 90 bytes. Also, suppose the size of a BTreeNode pointer is 4 bytes.

  How to implement a class called hugeinteger

Using your own Linked List implementation (see attached), implement a class called HugeInteger that represents arbitrary sized integers and supports addition only. You may only use the tools we have introduced in class, and you MAY NOT use Java's ..

  Create a flowchart to show how to sort

Give the pseudocode and flowchart that would show how one of the additional data structures could be implemented to search data.

  Communicationa significant distinction between online and

communicationa significant distinction between online and face-to-face classes lies in the area of

  You need to find the smallest array and see a segment fault

Write me a function that finds the smallest item in an ArrayBag (by reference) and returns true if the arrayBag is not empty and false otherwise.

  Karatsuba''s divide-and-conquer algorithm

In class we discussed Karatsuba's divide-and-conquer algorithm for integer multiplication, which multiplies n-bit numbers by recursively multiplying n bit numbers. We take two numbers X and Y and split them each into their most significant half a..

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd