Algorithm Analysis and Complexity
Algorithm Analysis and Complexity
Technology
Algorithm
Algorithm is a step-by-step procedure, which
defines a set of instructions to be executed
in a certain order to get the desired output.
Algorithms are generally created
independent of underlying languages, i.e. an
algorithm can be implemented in more than
one programming language.
Amity School of Engineering &
Analysis of Algorithm
Technology
• S(P)= C + SP
Time Complexity
• O(nlogn)
Amity School of Engineering &
Technology
What is the time complexity of
following code:
int a = 0, b = 0;
for (i = 0; i < N; i++)
{
a = a + rand();
}
for (j = 0; j < M; j++)
{
b = b + rand();
}
Amity School of Engineering &
Answer Technology
• O(n)
What is time complexity of fun()?
Amity School of Engineering &
Technology
int fun(int n)
{
int count = 0;
for (int i = 0; i < n; i++)
for (int j = i; j > 0; j--)
count = count + 1;
return count;
}
Amity School of Engineering &
Answer Technology
• O( n2 )
What is time complexity of fun()?
Amity School of Engineering &
Technology
• O(n)
What is time complexity ()?
Amity School of Engineering &
Technology
int a = 0, i = N;
while (i > 0)
{
a += i;
i /= 2;
}
Amity School of Engineering &
Answer Technology
• O(log N)
Amity School of Engineering &
Recurrences Technology
• A recurrence is an equation or
inequality that describes a
function in terms of its value on
smaller inputs. Recurrences are
generally used in divide-and-
conquer paradigm.
Amity School of Engineering &
Technology
• T (n) = 2T (n-1)
• = 2[2T (n-2)] = 22T (n-2)
• = 4[2T (n-3)] = 23T (n-3)
• = 8[2T (n-4)] = 24T (n-4) …………….(Eq.1)
• T (n) = T (n-1) +1
• = (T (n-2) +1) +1
• = (T (n-3) +1) +1+1
• = T (n-4) +4
• = T (n-5) +1+4 = T (n-5) +5
• = T (n-k) + k
• Where k = n-1 ,T (n-k) = T (1) = θ (1)
• T (n) = θ (1) + (n-1) = 1+n-1=n= θ (n).
Amity School of Engineering &
Recursion Tree Method Technology
• O(n2 )
Amity School of Engineering &
Consider the following Technology
recurrence
T (n) = 4T(n/2) +n
• O(n2 )
Amity School of Engineering &
Consider the following Technology
recurrence
Amity School of Engineering &
Answer Technology
recurrence
• T(n)= 3 T(n/4) +n2
Amity School of Engineering &
Answer Technology
• O(n2 )
Amity School of Engineering &
Consider the following Technology
recurrence
• T(n) = 2T(n/2) + n
Amity School of Engineering &
Answer Technology
• O(nlogn)
Amity School of Engineering &
Consider the following Technology
recurrence
• T(n) = T(n/5) + T(4n/5) + n
Amity School of Engineering &
Technology
• O(nlog5/4n)
Amity School of Engineering &
Master Method Technology
•
Amity School of Engineering &
Technology
• f (n) is the sum of the work done
outside the recursive calls, which
includes the sum of dividing the
problem and the sum of combining
the solutions to the subproblems.
• It is not possible always bound the
function according to the requirement,
so we make three cases which will tell
us what kind of bound we can apply
on the function.
Amity School of Engineering &
Technology
Amity School of Engineering &
Technology
• T(n)=9 T(n/3)+n
Amity School of Engineering &
Answer Technology
Θ(n2)
Amity School of Engineering &
Technology
• T(n)=T(2n/3) +1
Amity School of Engineering &
Answer Technology
• Θ(log2 n)
Amity School of Engineering &
Technology
• T(n)=3T(n/4)+n log2 n
Amity School of Engineering &
Answer Technology
• Θ (n log 2 n)
Amity School of Engineering &
Solve following Technology
• T (n) = 8 T(n/2)+1000n2
• T (n) = 2T(n/2)+ n2
Amity School of Engineering &
Answer Technology
• Θ (n3)
• Θ (n log n)
• Θ(n2)
Solve following using Master Method
Amity School of Engineering &
Technology