0% found this document useful (0 votes)
19 views22 pages

Chapter 01

The document introduces algorithms and discusses their importance in computing. It defines what algorithms are, provides examples of sorting and other problems that algorithms can solve, and discusses factors like efficiency and complexity that are important in analyzing algorithms.

Uploaded by

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

Chapter 01

The document introduces algorithms and discusses their importance in computing. It defines what algorithms are, provides examples of sorting and other problems that algorithms can solve, and discusses factors like efficiency and complexity that are important in analyzing algorithms.

Uploaded by

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

Introduction to

Algorithms
(3rd edition)


by Cormen, Leiserson, Rivest & Stein

Chapter 1: The Role of Algorithms in


Computing
Questions

 What are algorithms?
 Why is the study of algorithms worthwhile?
 What is the role of algorithms relative to other
technologies used in computers?

2
Algorithms

Informally, an algorithm is …

A well-defined computational procedure that takes


some value, or set of values, as input and produces
some value, or set of values, as output.

input algorithm output

A sequence of computational steps that transform the


input into output.

3
Algorithms

Empirically, an algorithm is …

A tool for solving a well-specified computational


problem.

Problem specification includes what the input is, what


the desired output should be.

Algorithm describes a specific computational


procedure for achieving the desired output for a given
input.

4
Algorithms
The Sorting Problem: 
Input: A sequence of n numbers [a1, a2, … , an].
Output: A permutation or reordering [a'1, a'2, … , a'n ] of the input
sequence such that a'1  a'2  …  a'n .

An instance of the Sorting Problem:

Input: A sequence of 6 number [31, 41, 59, 26, 41, 58].

Expected output for given instance:

Expected
Output: The permutation of the input [26, 31, 41, 41, 58 , 59].

5
Algorithms

 Which algorithm is best for a given application
depends on—among other factors
 The number of items to be sorted
 The extent to which the items are already somewhat
sorted
 Possible restrictions on the item values
 The architecture of the computer
 The kind of storage devices to be used: main
memory, disks, or even tapes.
6
Algorithms
Some definitions …

An algorithm is said to be correct if, for every input
instance, it halts with the correct output.

A correct algorithm solves the given computational


problem.

Focus will be on correct algorithms; incorrect


algorithms can sometimes be useful, if we can control
their error rate
Algorithm specification may be in English, as a
computer program, even as a hardware design.

7
What kinds of problems are solved by
algorithms?


 Sorting is by no means the only computational
problem for which algorithms have been developed.
 Practical applications of algorithms are ubiquitous
and include the following examples:

8
Gallery of Problems

Algorithms are needed (most of which are novel) to solve the
many problems listed here …

The Human Genome Project seeks to identify


all the 100,000 genes in human DNA,
determining the sequences of the 3 billion
chemical base pairs comprising human DNA,
storing this information in databases, and
developing tools for data analysis.

The huge network that is the Internet and the


huge amount of data that courses through it
require algorithms to efficiently manage and
manipulate this data.

9
Gallery of Problems

E-commerce enables goods and services to be
negotiated and exchanged electronically.
Crucial is the maintenance of privacy and
security for all transactions.

Traditional manufacturing and commerce


require allocation of scarce resources in the
most beneficial way. Linear programming
algorithms are used extensively in commercial
optimization problems.

10
Some algorithms

 Shortest path algorithm
 Given a weighted graph and two
distinguished vertices -- the source
and the destination
-- compute the most efficient way to
get from one to the other
 Matrix multiplication algorithm
 Given a sequence of conformable
matrices, compute the most efficient
way of forming the product of the
matrix sequence

11
Some algorithms

 Convex hull algorithm
 Given a set of points on the plane,
compute the smallest convex body
that contains the points

 String matching algorithm


 Given a sequence of characters,
compute where (if at all) a second
sequence of characters occurs in the
first

12
Hard problems

Usual measure of efficiency is speed
 How long does an algorithm take to produce its
result?
 Define formally measures of efficiency
Problems exist that, in all probability, will take
a long time to solve
 Exponential complexity
 NP-complete problems
Problems exist that are unsolvable
13
Hard problems

NP-complete problems are interesting in and of
themselves
 Some of them arise in real applications
 Some of them look very similar to problems for
which efficient solutions do exist
 Knowing the difference is crucial
Not known whether NP-complete problems
really are as hard as they seem, or, perhaps, the
machinery for solving them efficiently has not
been developed just yet
14
Hard problems

 P  NP conjecture
 Fundamental open problem
in the theory of
computational complexity
 Open now for 30+ years

15
Algorithms as a
technology

 Even if computers were infinitely fast and memory
was plentiful and free
 Study of algorithms still important – still need to
establish algorithm correctness
 Since time and space resources are infinite, any correct
algorithm would do
 Real-world computers are fast but not infinitely so
 Memory is cheap but not unlimited

16
Efficiency

 Time and space efficiency are the goal
 Algorithms often differ dramatically in their
efficiency
 Example: Two sorting algorithms
 INSERTION-SORT – time efficiency is c1n2
 MERGE-SORT – time efficiency is c1nlogn
 For which problem instances would one algorithm be
preferable to the other?

17
Efficiency
factors:
 Answer depends on several
 Speed of machine performing the computation
 Internal clock speed
 Shared environment
 I/O needed by algorithm
 Quality of implementation (coding)
 Compiler optimization
 Implementation details (e.g., data structures)
 Size of problem instance
 Most stable parameter – used as independent variable

18
Efficiency

 INSERTION-SORT
 Implemented by an ace programmer and run on a machine
A that performs 109 instructions per second such that time
efficiency is given by:
tA(n) = 2n2 instructions (i.e., c1=2)
 MERGE-SORT
 Implemented by a novice programmer and run on a
machine B that performs 107 instructions per second such
that time efficiency is given by:
tB(n) = 50nlogn instructions (i.e., c1=50)
19
Efficiency
Machine A Machine B
Problem Insertion- Merge-
Size Sort Sort
n 2n2/109 50nlogn/107
10,000 0.20 0.66
50,000 5.00 3.90
100,000 20.00 8.30
500,000 500.00 47.33
1,000,000 2,000.00 99.66
5,000,000 50,000.00 556.34
10,000,000 200,000.00 1,162.67
50,000,000 5,000,000.00 6,393.86

20
Efficiency
 Graphical comparison
Time Efficiency Comparison

10.00

8.00
Seconds

6.00 Insertion Sort


4.00 Merge Sort

2.00

0.00
1 9 17 25 33 41 49 57 65
Size of Problem (in 1000s)

21
Algorithms vis-à-vis other technologies

 Are algorithms really that important in the face of
dramatic advances in other technologies?
 Hardware: super-fast clock speeds, parallelism,
pipelining
 Graphical User Interfaces (GUI)
 Object Oriented Systems
 LANs and WANs
 YES! Algorithms are at the core of most
technologies used in contemporary computation

22

You might also like