0% found this document useful (0 votes)
36 views14 pages

The Design and Analysis of Algorithms - Ch01

Uploaded by

yonghacart
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views14 pages

The Design and Analysis of Algorithms - Ch01

Uploaded by

yonghacart
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

The Design and

Analysis of Algorithms
by Anany Levitin

Lecture notes prepared by Laarni Pancho,


BU CS & IT Department
CHAPTER 1: INTRODUCTION 2

• What is an Algorithm
• Steps in Designing and Implementing an
Algorithm
• Important Problem Types
• Fundamental Data Structures
ALGORITHM 3

• 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
Important points 4

• Non-ambiguity
• Range of inputs
• The same algorithm can be
represented in different ways
• Several algorithms for solving the
same problem
gcd(m,n) 5

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


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

4. t ← t - 1
5. goto 2
6
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


What does it mean to
understand the problem? 7

• 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?
Design an algorithm 8

• 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
Analyze the algorithm 9
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 chosen
programming language?
Important problem types 10

• Sorting
• Searching
• String processing
• Graph problems
• Combinatorial problems
• Geometric problems
• Numerical problems
Fundamental data structures 11

Linear data structures


• Array
• Linked list
• Stack
• Queue

Operations: search, delete, insert


Implementation: static, dynamic
Fundamental data structures 12

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
Fundamental data structures 13

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
Conclusion 14

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

• Design techniques
• a general approach to solving problems

You might also like