You are on page 1of 18

Chapter 5:

Algorithms

Computer Science: An Overview


Eleventh Edition

by
J. Glenn Brookshear

Copyright 2012 Pearson Education, Inc.

Chapter 5: Algorithms

5.1 The Concept of an Algorithm


5.2 Algorithm Representation
5.3 Algorithm Discovery
5.4 Iterative Structures
5.5 Recursive Structures
5.6 Efficiency and Correctness

Copyright 2012 Pearson Education, Inc. 0-2

1
Definition of Algorithm

An algorithm is an ordered set of


unambiguous, executable steps
that defines a terminating process.

Copyright 2012 Pearson Education, Inc. 0-3

Algorithm Representation

Requires well-defined primitives


A collection of primitives constitutes a
programming language.

Copyright 2012 Pearson Education, Inc. 0-4

2
Figure 5.2 Folding a bird from a
square piece of paper

Copyright 2012 Pearson Education, Inc. 0-5

Figure 5.3 Origami primitives

Copyright 2012 Pearson Education, Inc. 0-6

3
Pseudocode Primitives

Assignment
name expression

Conditional selection
if condition then action

Copyright 2012 Pearson Education, Inc. 0-7

Pseudocode Primitives (continued)

Repeated execution
while condition do activity

Procedure
procedure name (generic names)

Copyright 2012 Pearson Education, Inc. 0-8

4
Figure 5.4 The procedure Greetings
in pseudocode

Copyright 2012 Pearson Education, Inc. 0-9

Polyas Problem Solving Steps

1. Understand the problem.


2. Devise a plan for solving the problem.
3. Carry out the plan.
4. Evaluate the solution for accuracy and
its potential as a tool for solving other
problems
problems.

Copyright 2012 Pearson Education, Inc. 0-10

5
Getting a Foot in the Door

Try working the problem backwards


Solve
S l an easieri related
l t d problem
bl
Relax some of the problem constraints
Solve pieces of the problem first (bottom up
methodology)
Stepwise refinement: Divide the problem into
smaller problems (top-down methodology)

Copyright 2012 Pearson Education, Inc. 0-11

Ages of Children Problem

Person A is charged with the task of determining


the ages of Bs
B s three children
children.
B tells A that the product of the childrens ages is 36.
A replies that another clue is required.
B tells A the sum of the childrens ages.
A replies that another clue is needed.
B tells A that the oldest child plays the piano
piano.
A tells B the ages of the three children.
How old are the three children?

Copyright 2012 Pearson Education, Inc. 0-12

6
Figure 5.5

Copyright 2012 Pearson Education, Inc. 0-13

Iterative Structures

Pretest loop:
while (condition) do
(loop body)
Posttest loop:
repeat (loop body)
until(condition)

Copyright 2012 Pearson Education, Inc. 0-14

7
Figure 5.6 The sequential search
algorithm in pseudocode

Copyright 2012 Pearson Education, Inc. 0-15

Figure 5.7 Components of repetitive


control

Copyright 2012 Pearson Education, Inc. 0-16

8
Figure 5.8 The while loop structure

Copyright 2012 Pearson Education, Inc. 0-17

Figure 5.9 The repeat loop structure

Copyright 2012 Pearson Education, Inc. 0-18

9
Figure 5.10 Sorting the list Fred, Alex,
Diana, Byron, and Carol alphabetically

Copyright 2012 Pearson Education, Inc. 0-19

Figure 5.11 The insertion sort


algorithm expressed in pseudocode

Copyright 2012 Pearson Education, Inc. 0-20

10
Recursion

The execution of a procedure leads to


another
th execution
ti off the
th procedure.
d
Multiple activations of the procedure are
formed, all but one of which are waiting for
other activations to complete.

Copyright 2012 Pearson Education, Inc. 0-21

Figure 5.12 Applying our strategy to


search a list for the entry John

Copyright 2012 Pearson Education, Inc. 0-22

11
Figure 5.13 A first draft of the binary
search technique

Copyright 2012 Pearson Education, Inc. 0-23

Figure 5.14 The binary search


algorithm in pseudocode

Copyright 2012 Pearson Education, Inc. 0-24

12
Figure 5.15

Copyright 2012 Pearson Education, Inc. 0-25

Figure 5.16

Copyright 2012 Pearson Education, Inc. 0-26

13
Figure 5.17

Copyright 2012 Pearson Education, Inc. 0-27

Algorithm Efficiency

Measured as number of instructions


executed
t d
Big theta notation: Used to represent
efficiency classes
Example: Insertion sort is in (n2)
Best,
Best worst
worst, and average case analysis

Copyright 2012 Pearson Education, Inc. 0-28

14
Figure 5.18 Applying the insertion sort in
a worst-case situation

Copyright 2012 Pearson Education, Inc. 0-29

Figure 5.19 Graph of the worst-case


analysis of the insertion sort algorithm

Copyright 2012 Pearson Education, Inc. 0-30

15
Figure 5.20 Graph of the worst-case
analysis of the binary search algorithm

Copyright 2012 Pearson Education, Inc. 0-31

Software Verification

Proof of correctness
Assertions
Preconditions
Loop invariants
Testing

Copyright 2012 Pearson Education, Inc. 0-32

16
Chain Separating Problem

A traveler has a gold chain of seven links.


He must stay at an isolated hotel for seven
nights.
The rent each night consists of one link from the
chain.
What is the fewest number of links that must be
cut so that the traveler can p
pay
y the hotel one link
of the chain each morning without paying for
lodging in advance?

Copyright 2012 Pearson Education, Inc. 0-33

Figure 5.21 Separating the chain


using only three cuts

Copyright 2012 Pearson Education, Inc. 0-34

17
Figure 5.22 Solving the problem with
only one cut

Copyright 2012 Pearson Education, Inc. 0-35

Figure 5.23 The assertions associated


with a typical while structure

Copyright 2012 Pearson Education, Inc. 0-36

18

You might also like