0% found this document useful (0 votes)
101 views12 pages

What Is An Algorithm?

The document discusses algorithms including their definition, examples of algorithms like Euclid's algorithm and the sieve of Eratosthenes, and techniques for designing and analyzing algorithms.

Uploaded by

Jeff Torralba
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views12 pages

What Is An Algorithm?

The document discusses algorithms including their definition, examples of algorithms like Euclid's algorithm and the sieve of Eratosthenes, and techniques for designing and analyzing algorithms.

Uploaded by

Jeff Torralba
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 12

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
A.

computer

output
1

Levitin Introduction to the Design & Analysis of Algorithms, 3rd ed., Ch. 1 2012 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved.

Euclids 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) = ? Euclids 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.

Two descriptions of Euclids 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 fo 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 nr 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. 3

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.

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.

Sieve of Eratosthenes
Input: Integer n 2 Output: List of primes less than or equal to n for p 2 to n do A[p] p for p 2 to n do if A[p] 0 //p hasnt been previously eliminated from the list j p* p while j n do A[j] 0 //mark element as eliminated jj+p Example: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
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

Why study algorithms?

Theoretical importance the core of computer science

Practical importance A practitioners 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.

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.

Algorithm design techniques/strategies

Brute force Divide and conquer

Greedy approach Dynamic programming

Decrease and conquer


Transform and conquer Space and time tradeoffs

Iterative improvement
Backtracking 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.

Analysis of algorithms

How good is the algorithm? time efficiency space efficiency

Does there exist a better algorithm? lower bounds optimality

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

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. 11

Fundamental data structures

list

graph tree set and dictionary

array
linked list string

stack queue priority queue


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

You might also like