Nabia Rahman Farjana Sarmin 
Name of 
Group 
Members 
MD. Osman Goni Sumayea Musarat
 An algorithm is a procedure or formula for 
solving a problem. 
 Derives from the mathematician, Mohammed 
ibn-Musa al-Khwarizmi. 
 Al-Khwarizmi's work is the likely source for the 
word algebra as well.
 In mathematics and computer science, an 
algorithm is a step-by-step procedure for 
calculations. 
 Algorithms are used for calculation, data 
processing, and automated reasoning. 
 A program is one type of algorithm 
 All programs are algorithms 
Not all algorithms are programs!
 Using a similar problem-solving approach 
can be grouped together 
 The purpose is not to be able to classify an 
algorithm as one type or another, but to 
highlight the various ways in which a 
problem can be attacked.
• Simple recursive algorithms 
• Backtracking algorithms 
• Divide and conquer algorithms 
• Dynamic programming algorithms 
• Greedy algorithms 
• Branch and bound algorithms 
• Brute force algorithms 
• Randomized algorithms
A simple recursive algorithm: 
 Solves the base cases directly 
 Recurs with a simpler sub problem 
 Does some extra work to convert the 
solution to the simpler sub problem into a 
solution to the given problem 
 I call these “simple” because several of the 
other algorithm types are inherently recursive
 Given a list, find a specific element in the 
list 
We will see two types 
 Linear search 
 Binary search
 Given a list, put it into some order 
We will see Three types 
 Bubble sort 
 Selection sort 
 Quick sort
 In computer science, divide and conquer is an 
important algorithm design paradigm based 
on multi-branched recursion. 
 It works by recursively breaking down a 
problem into two or more sub-problems.
 It is a method for solving complex problems by 
breaking them down into simpler sub 
problems.
 It is a general algorithm for finding optimal 
solutions of various optimization problems. 
 A branch-and-bound algorithm consists of a 
systematic calculation of all candidate 
solutions.
A brute force algorithm simply tries all 
possibilities until a satisfactory solution is 
found 
- Such an algorithm can be: 
Optimizing 
- Example: Finding the best path for a 
travelling salesman 
Satisfying 
- Example: Finding a travelling salesman 
path that is within 10% of optimal
 A randomized algorithm uses a random 
number at least once during the computation 
to make a decision 
 Example: In Quicksort, using a random 
number to choose a pivot 
 Example: Trying to factor a large prime by 
choosing random numbers as possible 
divisors
mmmmmmm

mmmmmmm

  • 2.
    Nabia Rahman FarjanaSarmin Name of Group Members MD. Osman Goni Sumayea Musarat
  • 3.
     An algorithmis a procedure or formula for solving a problem.  Derives from the mathematician, Mohammed ibn-Musa al-Khwarizmi.  Al-Khwarizmi's work is the likely source for the word algebra as well.
  • 4.
     In mathematicsand computer science, an algorithm is a step-by-step procedure for calculations.  Algorithms are used for calculation, data processing, and automated reasoning.  A program is one type of algorithm  All programs are algorithms Not all algorithms are programs!
  • 5.
     Using asimilar problem-solving approach can be grouped together  The purpose is not to be able to classify an algorithm as one type or another, but to highlight the various ways in which a problem can be attacked.
  • 6.
    • Simple recursivealgorithms • Backtracking algorithms • Divide and conquer algorithms • Dynamic programming algorithms • Greedy algorithms • Branch and bound algorithms • Brute force algorithms • Randomized algorithms
  • 7.
    A simple recursivealgorithm:  Solves the base cases directly  Recurs with a simpler sub problem  Does some extra work to convert the solution to the simpler sub problem into a solution to the given problem  I call these “simple” because several of the other algorithm types are inherently recursive
  • 9.
     Given alist, find a specific element in the list We will see two types  Linear search  Binary search
  • 12.
     Given alist, put it into some order We will see Three types  Bubble sort  Selection sort  Quick sort
  • 16.
     In computerscience, divide and conquer is an important algorithm design paradigm based on multi-branched recursion.  It works by recursively breaking down a problem into two or more sub-problems.
  • 17.
     It isa method for solving complex problems by breaking them down into simpler sub problems.
  • 18.
     It isa general algorithm for finding optimal solutions of various optimization problems.  A branch-and-bound algorithm consists of a systematic calculation of all candidate solutions.
  • 19.
    A brute forcealgorithm simply tries all possibilities until a satisfactory solution is found - Such an algorithm can be: Optimizing - Example: Finding the best path for a travelling salesman Satisfying - Example: Finding a travelling salesman path that is within 10% of optimal
  • 20.
     A randomizedalgorithm uses a random number at least once during the computation to make a decision  Example: In Quicksort, using a random number to choose a pivot  Example: Trying to factor a large prime by choosing random numbers as possible divisors