0% found this document useful (0 votes)
18 views27 pages

Recurrence Relation Examples 1

Uploaded by

Gurvinder Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views27 pages

Recurrence Relation Examples 1

Uploaded by

Gurvinder Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Recurrence Relation Examples: Substitution Method

T(n) = T(n-1) + 1
void Test(int n)
{
if(n>0)
{
printf(“%d”,n);
Test(n-1);
}
}
Test(3)

3 Test(2)

2 Test(1)

1 Test(0)

f(n) = n+1 calls


Complexity O(n)
void Test(int n) T(n)
{
if(n>0)
{
printf(“%d”,n); 1
Test(n-1); T(n-1)
}
}

T(n) = T(n-1) + 1
1 𝑛=0
T(n) =
T(n−1) + 1 𝑛 > 0

Substitute T(n-1)
T(n) = [T(n-2) + 1] + 1
T(n) = T(n-2) + 2
T(n) = [T(n-3) + 1] + 2
T(n) = T(n-3) + 3

Continue for k times
T(n) = T(n-k) + k
1 𝑛=0
T(n) =
T(n−1) + 1 𝑛 > 0

Substitute T(n-1)
T(n) = [T(n-2) + 1] + 1
T(n) = T(n-2) + 2
T(n) = [T(n-3) + 1] + 2
T(n) = T(n-3) + 3

Continue for k times
T(n) = T(n-k) + k
Assume n-k= 0
n=k
T(n) = T(n-n) + n
T(n) = T(0) + n
T(n) = 1 + n
O(n)
Recurrence Relation

T(n) = T(n-1) + n
Recurrence Relation
void Test(int n)
{
if(n > 0) 1
{
for(i=0; i < n ; i++) n+1
{
printf(“%d”, n); n
}
Test(n-1) T(n-1)
}
}
T(n) = T(n-1) + 2n+2
Recurrence Relation
1 𝑛=0
T(n) =
T(n−1) + 𝑛 𝑛 > 0

T(n)

n T(n-1)

n-1 T(n-2)

n-2 T(n-3)

1 T(0)
Recurrence Relation
1 𝑛=0
T(n) =
T(n−1) + 𝑛 𝑛 > 0

T(n) n

n T(n-1) n-1

n-1 T(n-2) n-2

n-2 T(n-3) …

1 T(0)
Recurrence Relation
1 𝑛=0
T(n) =
T(n−1) + 𝑛 𝑛 > 0

T(n) n

n T(n-1) n-1

n-1 T(n-2) n-2

0+1+2+……….+n = n(n+1)/2 n-2 T(n-3) …


= 𝑶(𝒏𝟐 )

1 T(0)
Recurrence Relation
T(n) = T(n-1) + n
T(n) = T(n-2) + (n-1)+n
T(n) = T(n-3) + (n-2)+(n-1)+n

T(n) = T(n-k) + (n-(k-1)) + (n-(k-2)) + ….+(n-1)+n

Assume (n-k)=0
n=k
T(n) = T(0) + 1 + 2 + 3 + …..+(n-1)+n
= 1 + n(n+1)/2

𝑶(𝒏𝟐 )
Recurrence Relation

𝑻(𝒏) = 𝑻(𝒏 − 𝟏) + 𝒍𝒐𝒈𝒏


void Test(int n)
{
if(n > 0) 1
{
for(i=0; i < n ; i*2) 𝑛+1
{
printf(“%d”, n); 𝑙𝑜𝑔𝑛
}
Test(n-1) 𝑇(𝑛 − 1)
}
}
𝑇(𝑛) = 𝑇(𝑛 − 1) + 𝑙𝑜𝑔𝑛
1 𝑛=0
T(n) =
T(n−1) + 𝑙𝑜𝑔𝑛 𝑛 > 0

T(n)

𝑙𝑜𝑔𝑛 T(n-1)

𝑙𝑜𝑔(𝑛 − 1) T(n-2)

𝑙𝑜𝑔(𝑛 − 2) T(n-3)

1 T(0)
1 𝑛=0
T(n) =
T(n−1) + 𝑙𝑜𝑔𝑛 𝑛 > 0

T(n)

logn T(n-1)

log(n-1) T(n-2)
log1+log2+……….log(n-1)+logn =log(n x n-1 x …x 2 x 1)
=logn! log(n-2) T(n-3)
𝑂(𝑛𝑙𝑜𝑔𝑛)

1 T(0)
1 𝑛=0
T(n) =
T(n−1) + 𝑙𝑜𝑔𝑛 𝑛 > 0

𝑇(𝑛) = 𝑇(𝑛 − 1) + 𝑙𝑜𝑔𝑛

𝑇(𝑛) = [𝑇(𝑛 − 2) + log(𝑛 − 1)] + 𝑙𝑜𝑔𝑛

𝑇(𝑛) = [𝑇(𝑛 − 2) + log(𝑛 − 1)] + 𝑙𝑜𝑔𝑛

𝑇(𝑛) = [𝑇(𝑛 − 3) + log(𝑛 − 2)] + log(𝑛 − 1) + 𝑙𝑜𝑔𝑛

𝑇(𝑛) = 𝑇(𝑛 − 3) + log(𝑛 − 2) + log(𝑛 − 1) + 𝑙𝑜𝑔𝑛

𝑇(𝑛) = 𝑇(𝑛 − 𝑘) + log1 + log2 + … . + log(𝑛 − 1) + 𝑙𝑜𝑔𝑛

Putting 𝑛 − 𝑘 = 0

𝑇(𝑛) = 𝑇(0) + 𝑙𝑜𝑔𝑛!


𝑇 𝑛 = 1 + 𝑙𝑜𝑔𝑛!
𝑂(𝑛𝑙𝑜𝑔𝑛)
𝑇(𝑛) = 𝑇(𝑛 − 1) + 1 𝑂(𝑛)
𝑇(𝑛) = 𝑇(𝑛 − 1) + 𝑛 𝑂(𝑛! )
𝑇(𝑛) = 𝑇(𝑛 − 1) + 𝑙𝑜𝑔𝑛 𝑂(𝑛𝑙𝑜𝑔𝑛)
𝑇(𝑛) = 𝑇(𝑛 − 1) + 𝑛^2 𝑂(𝑛" )
𝑇(𝑛) = 𝑇(𝑛 − 2) + 1 𝑂(𝑛)
𝑇(𝑛) = 𝑇(𝑛 − 100) + 𝑛 𝑂(𝑛! )

For recurrence like


𝑻(𝒏) = 𝟐𝑻(𝒏 − 𝟏) + 𝟏
??
Recurrence Relation

T(n) = 2T(n-1) + 1
Algorithm Test (int n)
{
if(n > 0)
{
printf(“%d”,n);
Test(n-1);
Test(n-1);
}
}
Recurrence Relation

Algorithm Test (int n) T(n)


{
if(n > 0)
{
printf(“%d”,n); 1
Test(n-1); Test(n-1)
Test(n-1); Test(n-1)
}
}

T(n)=2T(n-1)+1
Recurrence Relation
1 𝑛=0
T(n) =
2T(n−1) + 1 𝑛 > 0

T(n)

1 T(n-1) T(n-1)

1 T(n-2) T(n-2) 1 T(n-2) T(n-2)


Recurrence Relation
1 𝑛=0
T(n) =
2T(n−1) + 1 𝑛 > 0

1+2+2! +…………….+ 2# = 2#$% -1

! # a(& !"# −1)


a + ar + a 𝑟 +……………..+a 𝑟 =
&(%

%.(!!"# − 1)
a=1, r=2 =
!(%
Assume n-k=0
O(2* )
Recurrence Relation
1 𝑛=0
T(n) =
2T(n−1) + 1 𝑛 > 0

By substitution,

𝑇(𝑛) = 2# 𝑇(𝑛 − 𝑘) + 2#(% + 2#(! + ………+ 2! +2+1

Assume 𝑛 − 𝑘 = 0
T(n) = 2*$% – 1

O(2* )
Recurrence Relation for Root Function
void Test(int n) T(n)
{
if(n > 2)
{
stmt; 1
Test( 𝑛); T( 𝑛)
}
}
Recurrence Relation: T(n) = T( 𝑛) + 1
1 𝑛=2
T(n) =
T( 𝑛)+ 1 𝑛>2

T(n )= T( 𝑛) + 1
#
T(n) = T(𝑛 ) + 1
$
#
T(n) = T(𝑛 ) + 2
$$
#
T(n) = T(𝑛 ) + 3
$%


#
T(n) = T(𝑛 ) + k
$!
Assume n = 2+
&
T(2+ ) = T(2 ) + k
$!
&
Assume T(2 ) = T(2% )
$!
+
Therefore, !! = 1
𝑚 = 2# and k = log ! 𝑚
Since 𝑛 = 2+ , m = log ! 𝑛
k = log log ! 𝑛
𝜽(log 𝐥𝐨𝐠 𝟐 𝒏)

You might also like