Introduction to Algorithms
The Role of Algorithms in Computing
Algorithms
 A tool for solving a well-specified computational
problem
 Algorithms must be:
Correct: For each input produce an appropriate
output
Efficient: run as quickly as possible, and use as
little memory as possible – more about this later
2
Algorithm
Input Output
Algorithms Cont.
 A well-defined computational procedure
that takes some value, or set of values, as
input and produces some value, or set of
values, as output.
 Written in a pseudo code which can be
implemented in the language of
programmer’s choice.
3
Correct and incorrect algorithms
 Algorithm is correct if, for every input instance,
it ends with the correct output. We say that a
correct algorithm solves the given
computational problem.
 An incorrect algorithm might not end at all on
some input instances, or it might end with an
answer other than the desired one.
 We shall be concerned only with correct
algorithms.
4
A Simple Algorithm
 INPUT: a sequence of n numbers
T is an array of n elements
T[1], T[2], …, T[n]
 OUTPUT: the smallest number among them
 Performance of this algorithm is a function of n
5
min = T[1]
for i = 2 to n do
{
if T[i] < min
min = T[i]
}
Output min
Running-time of algorithms
 Bounds are for the algorithms, rather than
programs –
programs are just implementations of an
algorithm, and almost always the details of the
program do not affect the bounds
 Bounds are for algorithms, rather than
problems – A problem can be solved with
several algorithms, some are more efficient
than others
6
Insertion Sort
 while some elements unsorted:
 Using linear search, find the location in the sorted portion
where the 1st element of the unsorted portion should be
inserted
 Move all the elements after the insertion location up one
position to make space for the new element.
13 21
45 79 47 22
38 74 36
66 94 29
57 81
60 16
45
66
60
45
the fourth iteration of this loop is shown here
An insertion sort partitions the array into two regions
An insertion sort of an array of five integers

UNIT I.ppt

  • 1.
    Introduction to Algorithms TheRole of Algorithms in Computing
  • 2.
    Algorithms  A toolfor solving a well-specified computational problem  Algorithms must be: Correct: For each input produce an appropriate output Efficient: run as quickly as possible, and use as little memory as possible – more about this later 2 Algorithm Input Output
  • 3.
    Algorithms Cont.  Awell-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output.  Written in a pseudo code which can be implemented in the language of programmer’s choice. 3
  • 4.
    Correct and incorrectalgorithms  Algorithm is correct if, for every input instance, it ends with the correct output. We say that a correct algorithm solves the given computational problem.  An incorrect algorithm might not end at all on some input instances, or it might end with an answer other than the desired one.  We shall be concerned only with correct algorithms. 4
  • 5.
    A Simple Algorithm INPUT: a sequence of n numbers T is an array of n elements T[1], T[2], …, T[n]  OUTPUT: the smallest number among them  Performance of this algorithm is a function of n 5 min = T[1] for i = 2 to n do { if T[i] < min min = T[i] } Output min
  • 6.
    Running-time of algorithms Bounds are for the algorithms, rather than programs – programs are just implementations of an algorithm, and almost always the details of the program do not affect the bounds  Bounds are for algorithms, rather than problems – A problem can be solved with several algorithms, some are more efficient than others 6
  • 7.
    Insertion Sort  whilesome elements unsorted:  Using linear search, find the location in the sorted portion where the 1st element of the unsorted portion should be inserted  Move all the elements after the insertion location up one position to make space for the new element. 13 21 45 79 47 22 38 74 36 66 94 29 57 81 60 16 45 66 60 45 the fourth iteration of this loop is shown here
  • 8.
    An insertion sortpartitions the array into two regions
  • 9.
    An insertion sortof an array of five integers