Design and
Analysis of
Algorithm
Important problem types
Sorting
Searching
Stringprocessing
Graph problems
Combinatorial problems
Geometric problems
Numerical problems
Sorting
Any process of arranging items in
some sequence and/or in
different sets
◦ ordering: arranging items of the
same kind, class, nature, etc. in
some ordered sequence
◦ categorizing: grouping and labeling
items with similar properties
together (by sorts)
3
Searching
A search algorithm is an
algorithm for finding an item with
specified properties among a
collection of items
4
String processing
String functions are used in
computer programming
languages to manipulate a string
or query information about a
string (some do both)
5
Graph problems
A graph can be thought of as a
collection of points called
vertices, some of which are
connected by line segments
called edges. 3
2
1
5
4
6
Combinatorial problems
The traveling
salesman
problem and
the graph
coloring
problem are
examples of
combinatorial
problems.
7
Geometric Numerical
problems problems
Geometric Numerical problems
algorithms deal are problems that
involve mathematical
with geometric objects like solving
objects such as equations and
points, lines, systems of
and polygons. equations,
computing definite
integrals, evaluating
functions, and so on.
8
Finding the distance between
the two closest elements
15 23 37 56 58 67 80
Improvement version
Fundamental data
structures
List • Graph
◦ Array • Tree
◦ Linked list • Set & dictionary
◦ String
Stack
Queue
Priority queue
12