Introduction to Algorithms
3rd Edition
ISBN: 9780262033848
Author: Thomas H. Cormen, Ronald L. Rivest, Charles E. Leiserson, Clifford Stein
Publisher: MIT Press
expand_more
expand_more
format_list_bulleted
Concept explainers
Question
Chapter 4.1, Problem 3E
Program Plan Intro
To find the size for which recursive
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
suppose that n is not 2i for any integer i. How would we change the algorithm so that it handles the case when n is odd? I have two solutions: one that modifies the recursive algorithm directly, and one that combines the iterative algorithm and the recursive algorithm. You only need to do one of the two (as long as it works and does not increase the BigOh of the running time.)
2. Expand the following recurrence to help you find a closed-form solution, and then use induction to prove
your answer is correct.
T(n) = T(n-1) + 5 for n> 0; T(0) = 8.
3. Give a recursive algorithm for the sequential search and explain its running time.
In the friends level of abstracting recursion,
you can give your friend any legal instance that is smaller than yours according to some
measure as long as you solve in your own any instance that is sufficiently small. For
which of these algorithms has this been done? If so, what is your measure of the size of
the instance? On input instance (n, m), either bound the depth to which the algorithm
recurses as a function of n and m, or prove that there is at least one path down the
recursion tree that is infinite.
algorithm R, (n, m)
(pre-cond): n & mints.
(post-cond): Say Hi
begin
if(n ≤ 0)
else
Print("Hi")
R₂ (n - 1,2m)
end if
end algorithm
algorithm R, (n, m)
(pre-cond): n & m ints.
(post-cond): Say Hi
begin
if(n ≤ 0)
else
Print("Hi")
Rb(n-1, m)
R₂(n, m-1)
end if
end algorithm
Chapter 4 Solutions
Introduction to Algorithms
Ch. 4.1 - Prob. 1ECh. 4.1 - Prob. 2ECh. 4.1 - Prob. 3ECh. 4.1 - Prob. 4ECh. 4.1 - Prob. 5ECh. 4.2 - Prob. 1ECh. 4.2 - Prob. 2ECh. 4.2 - Prob. 3ECh. 4.2 - Prob. 4ECh. 4.2 - Prob. 5E
Ch. 4.2 - Prob. 6ECh. 4.2 - Prob. 7ECh. 4.3 - Prob. 1ECh. 4.3 - Prob. 2ECh. 4.3 - Prob. 3ECh. 4.3 - Prob. 4ECh. 4.3 - Prob. 5ECh. 4.3 - Prob. 6ECh. 4.3 - Prob. 7ECh. 4.3 - Prob. 8ECh. 4.3 - Prob. 9ECh. 4.4 - Prob. 1ECh. 4.4 - Prob. 2ECh. 4.4 - Prob. 3ECh. 4.4 - Prob. 4ECh. 4.4 - Prob. 5ECh. 4.4 - Prob. 6ECh. 4.4 - Prob. 7ECh. 4.4 - Prob. 8ECh. 4.4 - Prob. 9ECh. 4.5 - Prob. 1ECh. 4.5 - Prob. 2ECh. 4.5 - Prob. 3ECh. 4.5 - Prob. 4ECh. 4.5 - Prob. 5ECh. 4.6 - Prob. 1ECh. 4.6 - Prob. 2ECh. 4.6 - Prob. 3ECh. 4 - Prob. 1PCh. 4 - Prob. 2PCh. 4 - Prob. 3PCh. 4 - Prob. 4PCh. 4 - Prob. 5PCh. 4 - Prob. 6P
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- Your main task is to write a recursive function sierpinski() that plots a Sierpinski triangle of order n to standard drawing. Think recursively: sierpinski() should draw one filled equilateral triangle (pointed downwards) and then call itself recursively three times (with an appropriate stopping condition). It should draw 1 filled triangle for n = 1; 4 filled triangles for n = 2; and 13 filled triangles for n = 3; and so forth. Sierpinski.java When writing your program, exercise modular design by organizing it into four functions, as specified in the following API: public class Sierpinski { // Height of an equilateral triangle with the specified side length. public static double height(double length) // Draws a filled equilateral triangle with the specified side length // whose bottom vertex is (x, y). public static void filledTriangle(double x, double y, double length) // Draws a Sierpinski triangle of order n, such that the largest filled //…arrow_forwardA certain recursive algorithm takes an input list of n elements. Divides the list into Vn sub-lists, each with yn elements. Recursively solves each of these yn smaller sub- instances. Then spends an additional 0(n) time to combine the solutions of these sub- instances to obtain the solution of the main instance. As a base case, if the size of the input list is at most a specified positive constant, then the algorithm solves such a small instance directly in 0(1) time. a) Express the recurrence relation that governs T(n), the time complexity of this algorithm. b) Derive the solution to this recurrence relation: T(n) = 0(?). Mention which methods you used to derive your solution.arrow_forwardRecall that in the deterministic approach for choosing the pivot in the SELECT algorithm, first we split the elements of the array into groups of size 5. We want to see how the running time of SELECT changes by varying the size of groups. Consider the following cases: (a) Split the array into groups of size 3 (b) Split the array into groups of size 7 For each case, write the corresponding recursion for the running time of the SELECT algorithm, draw the corresponding recursion tree for the worst case, and use it to solve the recursion for the worst case. For full credit, your answers must use O(.) notation (You do NOT need to use strong induction to prove your result).arrow_forward
- Now suppose that n is not 2i for any integer i. How would we change the algorithmso that it handles the case when n is odd? I have two solutions: one that modifiesthe recursive algorithm directly, and one that combines the iterative algorithm andthe recursive algorithm. You only need to do one of the two (as long as it works anddoes not increase the BigOh of the running time.)arrow_forwardThe Polish mathematician Wacław Sierpiński described the pattern in 1915, but it has appeared in Italian art since the 13th century. Though the Sierpinski triangle looks complex, it can be generated with a short recursive function. Your main task is to write a recursive function sierpinski() that plots a Sierpinski triangle of order n to standard drawing. Think recursively: sierpinski() should draw one filled equilateral triangle (pointed downwards) and then call itself recursively three times (with an appropriate stopping condition). It should draw 1 filled triangle for n = 1; 4 filled triangles for n = 2; and 13 filled triangles for n = 3; and so forth. API specification. When writing your program, exercise modular design by organizing it into four functions, as specified in the following API: public class Sierpinski { // Height of an equilateral triangle whose sides are of the specified length. public static double height(double length) // Draws a filled equilateral…arrow_forwardJacobi method is an iterative algorithm for determining the solutions of a strictly diagonally dominant system of linear equations. Each diagonal element is solved for, and an approximate value is plugged in. The process is then iterated until it converges. Further details of the method can be found at Jacobi Method with a formal algorithm and examples of solving a system of 2/3 linear equations. This also includes a python implementation of the algorithm using numpy. But, in this assignment, you are required to write python implementation using list/nested list data structure without using any of the built-in python libraries for matrix operations. Write a python function Jacobi(A, b, x_init) where A is a diagonal dominant matrix, b is list of constants (right-hand side of the equations), and x_init (a list) is an initial guess to the solution. The function returns the solution as a list (each value of the list is rounded off to two decimal places). >>> Jacobi([[2, 1, 1], [0, 2, 1],…arrow_forward
- In the divided and conquer algorithm for computing the maxima set of a given set A of n points in 2D, we split the points into left and right halves, recur on each half, and then merge the results. Let MSL and MSR be the return value of these recursive calls. Which of the following statements is true about these sets. Select all that apply. MSR is a maximum set of the right half. Every point in MSL belongs in the maximum set of A. MSL is a maximum set of the left half. Every point in MSR belongs in the maximal set of A.arrow_forwardGive a recursive algorithm for the sequential search and explain its running time.arrow_forwardPermutations and Combinations of a given set of components are dealt with in a significant number of coding interview tasks.1. Backtracking Method – In this recursive method, each answer is backtracked after the subset is added to the resultset.Space complexity for an additional array subset is O(n) and time complexity is O(2n). implement above problem in javaarrow_forward
- Show Let f(.) be a computable, strictly monotonic function, that is, f(n+ 1) > f(n) for all n. Show B = {f(n) | n ∈ N} is recursive.arrow_forwardDetermine a recurrence relation for the divide-and-conquer sum-computation algorithm. The problem is computing the sum of n numbers. This algorithm divides the problem into two instances of the same problem: to compute the sum of the first ⌊n/2⌋ numbers and compute the sum of the remaining ⌊n/2⌋ numbers. Once each of these two sums is computed by applying the same method recursively, we can add their values to get the sum in question. A-)T(n)=T(n/2)+1 B-)T(n)=T(n/2)+2 C-)T(n)=2T(n/2)+1 D-)T(n)=2T(n/2)+2arrow_forwardApply the Binary Search method to find a target using Recursive method.arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education