The solution to the recurrence T(n) = 4T(n/2) + n turns out to be T(n) = e(n). Show that a substitution proof with the assumption T(n) ≤ cn fails. Then show how to subtract a lower-order term to make a substitution proof work.

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter15: Recursion
Section: Chapter Questions
Problem 18SA
icon
Related questions
Question
Question 1)
4T(n/2) + n turns out to be T(n)
The solution to the recurrence T(n)
that a substitution proof with the assumption T(n) ≤ cn² fails. Then show how to subtract
a lower-order term to make a substitution proof work.
=
=
(n²³).
. Show
Transcribed Image Text:Question 1) 4T(n/2) + n turns out to be T(n) The solution to the recurrence T(n) that a substitution proof with the assumption T(n) ≤ cn² fails. Then show how to subtract a lower-order term to make a substitution proof work. = = (n²³). . Show
¹ If there exists a constant k ≥ 0 such that f(n)
=
log a
k
loga, k+1.
lg n), then T(n) = O(n lg 'n)
Ⓒ(n
Transcribed Image Text:¹ If there exists a constant k ≥ 0 such that f(n) = log a k loga, k+1. lg n), then T(n) = O(n lg 'n) Ⓒ(n
Expert Solution
Step 1: Required Proof

Required Proof:

Assuming T(n) < c*n^2 for some constant c, we can substitute it in the recurrence relation to get:

T(n) = 4T(n/2) + n < 4c(n/2)^2 + n = cn^2 + n

Since we want to prove that T(n) = O(n^2), we need to show that there exist constants c' and n0 such that T(n) <= c'n^2 for all n >= n0. However, we can see that this is not possible using the above inequality because cn^2 + n will always be greater than c'n^2 for any constant c' when n is sufficiently large. Therefore, the assumption that T(n) < c*n^2 fails to prove that T(n) = O(n^2).

To make a substitution proof work, we can subtract a lower-order term from T(n) before assuming T(n) < c*n^2. Let T'(n) = T(n) - an^b, where b > 2 and a is a constant to be determined later. Substituting T'(n) in the recurrence relation, we get:

T'(n) + an^b = 4[T'((n/2))] + n

= 4[(T(n/2) - a(n/2)^b)] + n

= 4T'(n/2) + 2an^b + n

Subtracting an additional an^b term from both sides, we get:

T'(n) = 4T'(n/2) + (n - an^b) <= 4c(n/2)^2 + (n - an^b) = cn^2 + (1 - 4a/4^(b-1))n^b

For the above inequality to hold, we need 1 - 4a/4^(b-1) to be negative, which implies that a > 4^(b-1)/4. Therefore, we can choose a = 1/4^(b-2) and get:

T'(n) <= cn^2 - n^(b-2)

 

trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Recurrence Relation
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
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning