Uploaded by Sicily McMillan

ch01

advertisement
CS3310: Design and Analysis of Algorithms
Introduction
Dr. Yunsheng Wang
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
1
What is an algorithm?
An algorithm is a sequence of unambiguous instructions
for solving a problem, i.e., for obtaining a required
output for any legitimate input in a finite amount of
time.
problem
algorithm
input
“computer”
output
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
2
Greatest Common Divisor

Problem: Find gcd(m,n), the greatest common divisor of
two nonnegative, not both zero integers m and n

gcd(60, 24)?
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
3
Euclid’s Algorithm
Problem: Find gcd(m,n), the greatest common divisor of two
nonnegative, not both zero integers m and n
Examples: gcd(60,24) = 12, gcd(60,0) = 60, gcd(0,0) = ?
Euclid’s algorithm is based on repeated application of equality
gcd(m,n) = gcd(n, m mod n)
until the second number becomes 0, which makes the problem
trivial.
Example: gcd(60,24) = gcd(24,12) = gcd(12,0) = 12
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
4
Two descriptions of Euclid’s algorithm
Step 1 If n = 0, return m and stop; otherwise go to Step 2
Step 2 Divide m by n and assign the value of the remainder to r
Step 3 Assign the value of n to m and the value of r to n. Go to
Step 1.
while n ≠ 0 do
r ← m mod n
m← n
n←r
return m
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
5
Other methods for computing gcd(m,n)
Consecutive integer checking algorithm
Step 1 Assign the value of min{m,n} to t
Step 2 Divide m by t. If the remainder is 0, go to Step 3;
otherwise, go to Step 4
Step 3 Divide n by t. If the remainder is 0, return t and stop;
otherwise, go to Step 4
Step 4 Decrease t by 1 and go to Step 2
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
6
Other methods for gcd(m,n) [cont.]
Middle-school procedure
Step 1
Step 2
Step 3
Step 4
Find the prime factorization of m
Find the prime factorization of n
Find all the common prime factors
Compute the product of all the common prime factors
and return it as gcd(m,n)
Is this an algorithm?
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
7
Find the prime number

The multiples of a given prime are generated as a
sequence of numbers starting from that prime,
with constant difference between them which is
equal to that prime.

Using trial division to sequentially test each
candidate number for divisibility by each prime.
A.Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
8
Sieve of Eratosthenes

To find all the prime numbers less than or equal to a
given integer n by Eratosthenes' method:
1. Create a list of consecutive integers from 2 through n:
(2, 3, 4, ..., n).
2. Initially, let p equal 2, the first prime number.
3. Starting from p, enumerate its multiples by counting
to n in increments of p, and mark them in the list (these
will be 2p, 3p, 4p, etc.; the p itself should not be
marked).
4. Find the first number greater than p in the list that is
not marked. If there was no such number, stop.
Otherwise, let p now equal this new number (which is
the next prime), and repeat from step 3.
A.Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
9
Example to finding the list of primes

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2 3
5
7

2 3
5
7
9
11
13
11
13
15
17
19
17
19
A.Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
10
Sieve of Eratosthenes
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
11
Sieve of Eratosthenes animation
A.Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
12
Why study algorithms?

Theoretical importance
• The core of computer science

Practical importance
• A practitioner’s toolkit of known algorithms
• Framework for designing and analyzing algorithms for
new problems
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
13
Two main issues related to algorithms

How to design algorithms

How to analyze algorithm efficiency
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
14
Algorithm Design & Analysis Process
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
15
Algorithm design techniques/strategies

Brute force

Greedy approach

Divide and conquer

Dynamic programming

Decrease and conquer

Iterative improvement

Transform and conquer

Backtracking

Space and time tradeoffs

Branch and bound
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
16
Analysis of algorithms

How good is the algorithm?
• time efficiency
• space efficiency

Does there exist a better algorithm?
• lower bounds
• optimality

Other characteristics
• simplicity (“beauty”)
• generality
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
17
Important problem types

sorting

searching

string processing

graph problems

combinatorial problems

geometric problems

numerical problems
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 1 ©2012 Pearson
Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
18
Download