Recursion Tree: Divide & Conquer Algorithm
Recursion Tree: Divide & Conquer Algorithm
Step-01:
Draw a recursion tree based on the given recurrence relation.
Step-02:
Determine-
Cost of each level
Total number of levels in the recursion tree
Number of nodes in the last level
Cost of the last level
Step-03:
Add cost of all the levels of the recursion tree and simplify the expression so obtained in
terms of asymptotic notation.
T(n) = 2T(n/2) + n
Step-01:
Draw a recursion tree based on the given recurrence relation.
Step-05:
Determine cost of last level- Cost of last level = n x T(1) = θ(n)
Step-06:
Add costs of all the levels of the recursion tree and simplify the expression so obtained in terms of asymptotic
notation-
= n x log2n + θ (n)
= θ (nlog2n)
T(n) = T(n/5) + T(4n/5) + n
The given recurrence relation shows-
A problem of size n will get divided into 2 sub-problems- one of size n/5 and another of size 4n/5.
Then, sub-problem of size n/5 will get divided into 2 sub-problems- one of size n/5 2 and another of size 4n/5 2.
On the other side, sub-problem of size 4n/5 will get divided into 2 sub-problems- one of size 4n/5 2 and another of size 42n/52 and so on.
At the bottom most layer, the size of sub-problems will reduce to 1
Cost of level-0 = n
Cost of level-1 = n/5 + 4n/5 = n
Cost of level-2 = n/52 + 4n/52 +
4n/52 + 42n/52 = n
Determine total number of levels in the recursion tree. We will consider the rightmost Determine number of nodes in the last level-
sub tree as it goes down to the deepest level-
Size of sub-problem at level-0 = (4/5) 0n Level-0 has 20 nodes i.e. 1 node
Size of sub-problem at level-1 =(4/5) 1n
Size of sub-problem at level-2 =(4/5) 2n Level-1 has 21 nodes i.e. 2 nodes
Continuing in similar manner, we have- Size of sub-problem at level-i = (4/5)in Level-2 has 22 nodes i.e. 4 nodes
Suppose at level-x (last level), size of sub-problem becomes 1. Then- (4/5) xn = 1 =>
(4/5)x = 1/n => xlog(4/5) = log(1/n) => x = log 5/4n Continuing in similar manner, we have- Level-log5/4n has 2log5/4n nodes
∴ Total number of levels in the recursion tree = log5/4n + 1
Determine cost of last level-
Cost of last level = 2log5/4n x T(1) = θ(2log5/4n) = θ(nlog5/42)
Add costs of all the levels of the recursion tree in terms of asymptotic notation-
= nlog5/4n + θ(nlog5/42)
= θ(nlog5/4n)
T(n) = 2T(n/2) +
n.
2
Determine cost of last level- Cost of last level = nlog43 x T(1) = θ(nlog43)
Add costs of all the levels of the recursion tree and simplify the expression so obtained in terms of asymptotic
notation-
= cn2 { 1 + (3/16) + (3/16)2 + ……… } + θ(nlog43)
Now, { 1 + (3/16) + (3/16)2 + ……… } forms an infinite Geometric progression.
On solving, we get-
= (16/13)cn2 { 1 – (3/16)log4n } + θ(nlog43)
= (16/13)cn2 – (16/13)cn2 (3/16)log4n + θ(nlog43)
= O(n2)