INTRODUCTION TO
ANALYSIS OF ALGORITHMS
INTRODUCTION OF ALGORITHMS
Step-by-step procedure to solve a problem
Algorithm is defined as a sequence of statements
which are used to perform a task.
Algorithms are used to convert our problem solution
into step-by-step statements
ALGORITHMS
A set of finite rules or instructions to be followed in
calculations or other problem-solving operations
SPECIFICATIONS OF ALGORITHMS
• Input
• Every algorithm must take zero or more number of input values
from external.
• Output
• Every algorithm must produce an output as result.
• Definiteness
• Every statement/instruction in an algorithm must be clear and
unambiguous (only one interpretation).
• Finiteness
• For all different cases, the algorithm must produce result within a
finite number of steps.
• Effectiveness
• Every instruction must be basic enough to be carried out and it also
must be feasible.
EXAMPLE OF ALGORITHMS
Problem Statement : Find the largest number in the given list of
numbers?
Input:
A list of positive integer numbers. (List must contain at least one
number).
Output:
The largest number in the given list of positive integer numbers.
Consider the given list of numbers as 'L' (input), and the largest
number as 'max' (Output).
ALGORITHM
• Step 1:
• Define a variable 'max' and initialize with '0'.
• Step 2:
• Compare first number (say 'x') in the list 'L' with 'max',
• if 'x' is larger than 'max', set 'max' to 'x'.
• Step 3:
• Repeat step 2 for all numbers in the list 'L'.
• Step 4:
• Display the value of 'max' as a result.
RECURSIVE ALGORITHM
•The function which is called by
itself is known as Direct Recursive
function (or Recursive function).
AnalyzingAlgorithms
Performance analysis
•
select the best algorithm
•
to solve the problem
ASYMPTOTIC NOTATIONS
• Asymptotic analysis of an algorithm refers to defining the
mathematical foundation/framing of its run-time
performance.
1. Best Case − Minimum time required for program
execution.
2. Average Case − Average time required for program
execution.
3. Worst Case − Maximum time required for program
execution.
ASYMPTOTIC NOTATIONS
• Different types asymptotic notations of are used to represent
the complexity of an algorithm. Following asymptotic notations
are used to calculate the running time complexity of an
algorithm.
• O − Big Oh Notation
• −
Ω Big omega Notation
• − Big theta Notation
θ
• o − Little Oh Notation
• − Little omega Notation
ω
BIG-O NOTATION (O-NOTATION)
• Big-O notation represents the upper bound of
the running time of an algorithm. Thus, it gives
the worst-case complexity of an algorithm.
OMEGA NOTATION (Ω-NOTATION)
•Omega notation represents the lower
bound of the running time of an
algorithm. Thus, it provides the best case
complexity of an algorithm.
THETA NOTATION (Θ-NOTATION)
•Theta notation encloses the function from
above and below. Since it represents the
upper and the lower bound of the
running time of an algorithm, it is used
for analyzing the average-case complexity
of an algorithm.
THANK YOU

Introduction to analysis of algorithms (ds)

  • 1.
  • 2.
    INTRODUCTION OF ALGORITHMS Step-by-stepprocedure to solve a problem Algorithm is defined as a sequence of statements which are used to perform a task. Algorithms are used to convert our problem solution into step-by-step statements
  • 3.
    ALGORITHMS A set offinite rules or instructions to be followed in calculations or other problem-solving operations
  • 4.
    SPECIFICATIONS OF ALGORITHMS •Input • Every algorithm must take zero or more number of input values from external. • Output • Every algorithm must produce an output as result. • Definiteness • Every statement/instruction in an algorithm must be clear and unambiguous (only one interpretation). • Finiteness • For all different cases, the algorithm must produce result within a finite number of steps. • Effectiveness • Every instruction must be basic enough to be carried out and it also must be feasible.
  • 5.
    EXAMPLE OF ALGORITHMS ProblemStatement : Find the largest number in the given list of numbers? Input: A list of positive integer numbers. (List must contain at least one number). Output: The largest number in the given list of positive integer numbers. Consider the given list of numbers as 'L' (input), and the largest number as 'max' (Output).
  • 6.
    ALGORITHM • Step 1: •Define a variable 'max' and initialize with '0'. • Step 2: • Compare first number (say 'x') in the list 'L' with 'max', • if 'x' is larger than 'max', set 'max' to 'x'. • Step 3: • Repeat step 2 for all numbers in the list 'L'. • Step 4: • Display the value of 'max' as a result.
  • 7.
    RECURSIVE ALGORITHM •The functionwhich is called by itself is known as Direct Recursive function (or Recursive function).
  • 8.
    AnalyzingAlgorithms Performance analysis • select thebest algorithm • to solve the problem
  • 9.
    ASYMPTOTIC NOTATIONS • Asymptoticanalysis of an algorithm refers to defining the mathematical foundation/framing of its run-time performance. 1. Best Case − Minimum time required for program execution. 2. Average Case − Average time required for program execution. 3. Worst Case − Maximum time required for program execution.
  • 10.
    ASYMPTOTIC NOTATIONS • Differenttypes asymptotic notations of are used to represent the complexity of an algorithm. Following asymptotic notations are used to calculate the running time complexity of an algorithm. • O − Big Oh Notation • − Ω Big omega Notation • − Big theta Notation θ • o − Little Oh Notation • − Little omega Notation ω
  • 11.
    BIG-O NOTATION (O-NOTATION) •Big-O notation represents the upper bound of the running time of an algorithm. Thus, it gives the worst-case complexity of an algorithm.
  • 12.
    OMEGA NOTATION (Ω-NOTATION) •Omeganotation represents the lower bound of the running time of an algorithm. Thus, it provides the best case complexity of an algorithm.
  • 13.
    THETA NOTATION (Θ-NOTATION) •Thetanotation encloses the function from above and below. Since it represents the upper and the lower bound of the running time of an algorithm, it is used for analyzing the average-case complexity of an algorithm.
  • 14.