Question #224911
Solve the recurrence by substitution method.
T(n) = 2T (n/2)+n-1 and T (1) =1.
1
Expert's answer
2021-08-26T16:58:37-0400

Let's substitute the following expressions into our equation :



T(n)=2T(n/2)+n1{nn/2:T(n/2)=2T(n/4)+n/21nn/4:T(n/4)=2T(n/8)+n/41nn/8:T(n/8)=2T(n/16)+n/81T(n)=2T\left(n/2\right)+n-1\longrightarrow\\[0.3cm] \left\{\begin{array}{l} n\to n/2 :\quad T\left(n/2\right)=2T\left(n/4\right)+n/2-1\\[0.3cm] n\to n/4 :\quad T\left(n/4\right)=2T\left(n/8\right)+n/4-1\\[0.3cm] n\to n/8 :\quad T\left(n/8\right)=2T\left(n/16\right)+n/8-1 \end{array}\right.

This will be enough to make a hypothesis.

Then,



T(n)=21T(n21)+1n1=20T(n)=2(2T(n4)+n/21)+1n1==4T(n4)+1n2+1n1T(n)=22T(n22)+2n(20+21)T(n)=4(2T(n8)+n/41)+2n(1+2)==8T(n8)+n4+2n(1+2)T(n)=23T(n23)+3n(20+21+22)T(n)=8(2T(n16)+n/81)+3n(20+21+22)==16T(n16)+n8+3n(20+21+22)T(n)=24T(n24)+4n(20+21+22+23)\boxed{T(n)=2^1\cdot T\left(\frac{n}{2^1}\right)+1\cdot n-\underbrace{1}_{=2^0}}\longrightarrow\\[0.3cm] T(n)=2\cdot\left(2\cdot T\left(\frac{n}{4}\right)+n/2-1\right)+1\cdot n-1=\\[0.3cm] =4\cdot T\left(\frac{n}{4}\right)+1\cdot n-2+1\cdot n-1\longrightarrow\\[0.3cm] \boxed{T(n)=2^2\cdot T\left(\frac{n}{2^2}\right)+2\cdot n-\left(2^0+2^1\right)}\\[0.3cm] T(n)=4\cdot\left(2\cdot T\left(\frac{n}{8}\right)+n/4-1\right)+2\cdot n-\left(1+2\right)=\\[0.3cm] =8\cdot T\left(\frac{n}{8}\right)+n-4+2\cdot n-\left(1+2\right)\longrightarrow\\[0.3cm] \boxed{T(n)=2^3\cdot T\left(\frac{n}{2^3}\right)+3\cdot n-\left(2^0+2^1+2^2\right)}\\[0.3cm] T(n)=8\cdot\left(2\cdot T\left(\frac{n}{16}\right)+n/8-1\right)+3\cdot n-\left(2^0+2^1+2^2\right)=\\[0.3cm] =16\cdot T\left(\frac{n}{16}\right)+n-8+3\cdot n-\left(2^0+2^1+2^2\right)\longrightarrow\\[0.3cm] \boxed{T(n)=2^4\cdot T\left(\frac{n}{2^4}\right)+4n-\left(2^0+2^1+2^2+2^3\right)}

Then,



T(n)=2kT(n2k)+nk(20+21+22++2k1)T(n)=2^k\cdot T\left(\frac{n}{2^k}\right)+nk-\left(2^0+2^1+2^2+\ldots+2^{k-1}\right)

It remains to calculate the sum in brackets, which is a geometric sum with the following parameters: a1=1a_1=1 and r=2r=2, then



20+21+22++2k1=a1(rk1)r1=2k12120+21+22++2k1=2k12^0+2^1+2^2+\ldots+2^{k-1}=\frac{a_1\cdot\left(r^k-1\right)}{r-1}=\frac{2^k-1}{2-1}\longrightarrow\\[0.3cm] \boxed{2^0+2^1+2^2+\ldots+2^{k-1}=2^k-1}

Conclusion,



T(n)=2kT(n2k)+nk(2k1)T(n)=2^k\cdot T\left(\frac{n}{2^k}\right)+nk-\left(2^k-1\right)

We use the initial condition :



n2k=1n=2kk=log2n\frac{n}{2^k}=1\to n=2^k\to\boxed{ k=\log_2n}

Then,



T(n)=2log2n=nT(1)+nlog2n(2log2n=n1)T(n)=n1+nlog2n(n1)T(n)=nlog2n+1+O(nlog2n)T(n)=\underbrace{2^{\log_2n}}_{=n}\cdot T(1)+n\cdot\log_2n-\left(\underbrace{2^{\log_2n}}_{=n}-1\right)\longrightarrow\\[0.3cm] T(n)=n\cdot1+n\cdot\log_2n-(n-1)\longrightarrow\\[0.3cm] \boxed{T(n)=n\cdot\log_2n+1+O\left(n\cdot\log_2n\right)}

ANSWER



T(n)=2T(n/2)+n1T(n)=nlog2n+1+O(nlog2n)T(n)=2T\left(n/2\right)+n-1\longrightarrow\\[0.3cm] T(n)=n\cdot\log_2n+1+O\left(n\cdot\log_2n\right)



Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!
LATEST TUTORIALS
APPROVED BY CLIENTS