Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 24

Chapter 10

Algorithmic Thinking
Learning Objectives
• List the five essential properties of an algorithm
• Explain similarities and differences among algorithms,
programs, and heuristic solutions
• Use the Intersect Alphabetized List algorithm to do the
following:
– Follow the flow of the instruction execution
– Follow an analysis to pinpoint assumptions
• Demonstrate algorithmic thinking by being able to do the
following:
– Explain the importance of alphabetical order on the solution
– Explain the importance of the barrier abstraction for
correctness

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Experience with Algorithms
• Programs are algorithms and all of the
applications you use daily are programs
• You use algorithms all the time
• You learn algorithms, too:
– In elementary school you learned basic
algorithms—for the operations of addition,
subtraction, multiplication, and division

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Is it an Algorithm?
• The process of doing something step-by-
step may not be not an algorithm
– An algorithm is a “systematic method for
producing a specified result”
– Searching is purposeful, and provides
direction…with no guarantee of a result!
– Algorithms ALWAYS work!
– Heuristic might describe the search! Heuristics
are helpful procedures for
finding a result
Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Algorithm Properties
• An algorithm must have five properties:
1. Input specified
2. Output specified
3. Definiteness
4. Effectiveness
5. Finiteness

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


1. Input Specified
• The input is the data to be transformed
during the computation to produce the
output.
• What data do you need to begin to get the
result you want?
• Input precision requires that you know
what kind of data, how much and what
form the data should be

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


2. Output Specified
• The output is the data resulting from the
computation (your intended result)
• Frequently the name of the algorithm
contains the output:
– “Algorithm to compute batting average”
• Output precision also requires that you
know what kind of data, how much and
what form the output should be (or even if
there will be any output at all!)
Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
3. Definiteness
• Algorithms must specify every step and
the order the steps must be taken in the
process
• Definiteness means specifying the
sequence of operations for turning input
into output
• Details of each step must be also be
spelled out (including how to handle
errors)
Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
4. Effectiveness
• For an algorithm to be effective, it means
that all those steps that are required to get
to output MUST BE DOABLE!

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


5. Finiteness
• The algorithm must stop, eventually!
• Stopping may mean that you get the
expected output OR you get a response
that no solution is possible
• Finiteness is not usually an issue for
noncomputer algorithms
• Computer algorithms often repeat
instructions with different data and
finiteness may be a problem
Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Other Algorithmic Characteristics
• “Algorithms Should Be General” and be
applicable to several cases
• “Algorithms Should Use Resources
Efficiently”:
– Fast Speed
– Minimal RAM or Disk Space
• Algorithms Should Be Understandable” so
that the operations are clear to readers

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Other Algorithmic Characteristics
• “Algorithms Should Be Clear and Precise”
despite the language used
– Natural languages are ambiguous in that
words or phrases may have multiple
meanings
– Programming languages are formal
languages with clear, unambiguous rules

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Algorithm Facts
1. Algorithms can be specified at different
levels of detail
– Algorithms use functions to simplify the
algorithmic description
– These functions (such as scan) may have
their own algorithms associated with them

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Algorithm Facts
2. Algorithms always build on functionality
previously defined and known to the user
– Assume the use familiar functions and
algorithms
– For example, how might scan be defined?
Would it be consistent for everyone? Could it
mean alphabetize? Look for similar formats?
Are these the same?

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Algorithm Facts
3. Different algorithms can solve the same
problem differently, and the different
solutions can take different amounts of
time (or space)

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


How Do We Know it Works?
• Algorithm solution is clear and simple and
efficient
• Then, how do we know it works?
• If there is no loop, the program runs, gets
to an end, and we can check the result
• What if there is a loop?
– Programs with loops cannot be absolutely
verified that it works…there are too many
possible cases
Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Then, what?
• The way to know that an algorithm works
is to know why it works…

• Strategy for knowing why it works:


– Find one or more properties that ensure the
algorithm works
– Explain, using the program, why they make it
work.

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Selection Sort
• Search entire list looking for smallest item
and swap it into its correct position.
• Search remaining list for next smallest item
and swap it into the second position.
• Continue searching for next smallest item
swapping it into its correct position until n-1
items have been swapped.
• The nth item will now be in its correct
position.
Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Selection Sort
Initial configuration: 7 3 9 8 1 6 4 5
Step #1: 1 3 9 8 7 6 4 5
Step #2: 1 3 9 8 7 6 4 5
Step #3: 1 3 4 8 7 6 9 5
Step #4: 1 3 4 5 7 6 9 8
Step #5: 1 3 4 5 6 7 9 8
Step #6: 1 3 4 5 6 7 9 8
Step #7: 1 3 4 5 6 7 8 9

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Summary
• We use algorithms daily, and we
continually create them as we instruct
other people in how to do something.
• Everyday algorithms can be sometimes be
unclear because natural language is
imprecise.
• Algorithms have five fundamental
properties.

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Summary
• Algorithms can be given at different levels
of detail depending on the abilities of the
agent.
• Problems can be solved by different
algorithms in different ways.
• Algorithms always work—either they give
the answer, or say no answer is possible
—and they are evaluated on their use of
resources such as space and time..
Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Summary
• Intersect Alphabetized Lists algorithm is
used in Web search, and is preferred over
other solutions.
• Two properties of the Intersect
Alphabetized Lists algorithm tell us why it
works: the Alpha-Ordering and Barrier
properties.

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Summary
• Abstractions and their properties are the
essence of algorithmic thinking.
Algorithmic thinking can become second
nature, helping us to be effective problem
solvers.

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Source:
• http://webcache.googleusercontent.com/s
earch?q=cache:QTjzarBaRCAJ:www.cs.w
m.edu/~debbie/cs131/Fluency5Slides/Cha
pter10.ppt+&cd=15&hl=en&ct=clnk&gl=jm
on September 12, 2020

Copyright © 2013 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

You might also like