0% found this document useful (0 votes)
9 views

l01 Intro

Uploaded by

showbrad
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

l01 Intro

Uploaded by

showbrad
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

Design and

Analysis of
Algorithms

By
Baidyanath Sou
Dept. of Computer science.
J.K. College
CHAPTER 1:
INTRODUCTION
• What is an Algorithm
• Steps in Designing and
Implementing an Algorithm
• Important Problem Types
• Fundamental Data Structures

2
ALGORITHM

• A sequence of unambiguous
instructions for solving a
problem, i.e. for obtaining
the required output for any
legitimate input in
a finite amount of time
3
Important points
• Non-ambiguity
• Range of inputs
• The same algorithm can be
represented in different ways
• Several algorithms for solving the
same problem

4
gcd(m,n)

while n ≠0 do 1. t ← min (m ,n)


r ← m mod n
m←n 2. if m % t = 0 goto 3,
n ←r
return m else goto
4

3. if n % t = 0 return
t,
else goto
4
5
Understand the problem

Decide on computational means


Exact vs approximate solution
Data structures
Algorithm design technique

Design an algorithm

Prove correctness

Analyze the algorithm

Code the algorithm

6
What does it mean to
understand the problem?
• What are the problem objects?
• What are the operations applied to the
objects?

Deciding on computational
means
• How the objects would be represented?
• How the operations would be
implemented?
7
Design an algorithm

• Build a computational model of


the solving process

Prove correctness
• Correct output for every
legitimate input in finite time
• Based on correct math formula
• By induction 8
Analyze the algorithm

Efficiency: time and space


Simplicity
Generality: range of inputs, special
cases
Optimality:
no other algorithm can do better
Coding
How the objects and operations in the
algorithm are represented in the 9
Important problem
types
• Sorting
• Searching
• String processing
• Graph problems
• Combinatorial problems
• Geometric problems
• Numerical problems

10
Fundamental data structures

Linear data structures


• Array
• Linked list
• Stack
• Queue

Operations: search, delete, insert


Implementation: static, dynamic

11
Fundamental data structures

Non-linear data structures


• Graphs
• Trees : connected graph without cycles
• Rooted trees
• Ordered trees
• Binary trees

Graph representation: adjacency lists,


adjacency matrix
Tree representation: as graphs; binary
nodes 12
Fundamental data structures

Sets, Bags, Dictionaries


• Set: unordered collection of distinct elements
Operations: membership, union,
intersection
Representation: bit string; linear structure
• Bag: unordered collection,
elements may be repeated
• Dictionary: a bag with operations search,
add, delete

13
Conclusion

• Algorithm classification
• By types of problems
• By design technique

• Design techniques
• a general approach to solving
problems

14

You might also like