invitation to computer science, java version, second edition
Post on 29-Dec-2015
233 Views
Preview:
TRANSCRIPT
ObjectivesIn this chapter, you will learn about:
Representing algorithms
Examples of algorithmic problem solving
2
IntroductionThis chapter discusses algorithms and
algorithmic problem solving using three problems:
Searching lists
Finding smallest and largest items in lists
Matching patterns
3
Representing AlgorithmsWhat is an algorithm?
A series of steps to perform a task – that’s it.
A recipe is an algorithm for how to cook chicken enchiladas
Directions are an algorithm for how to get to someone’s house
4
Representing AlgorithmsNatural language
Language spoken and written in everyday lifeEnglish, SpanishProblems with using natural language for
algorithmsImpreciseRelies on context and experience of the
person you are talking to“I saw the man looking through the
telescope”5
Representing AlgorithmsHigh-level programming language
Examples: C++, Java
Problem with using a high-level programming language for algorithms
During the initial phases of design, we are forced to deal with detailed language issues
6
PseudocodeEnglish language constructs modeled to
look like statements available in most programming languages
Ex: ADD X + Y
No fixed syntax for most operations is required
Everyone knows what you are talking about 7
Pseudocode (continued)Less ambiguous and more readable than
natural language
Emphasis is on the process, not the specific notation
Can be easily translated into a programming language
8
OperationsTypes of algorithmic operations
Sequential – input / output, assignment, printing, etc.
Conditional – doing one thing or another based on a certain condition
Iterative – looping – doing something more than once
9
Sequential Operations (continued)Computation operations
Example
Set the value of “variable” to “arithmetic expression”
X = 10 (set x equal to 10)
Variable
Named storage location that can hold a data value
X in the above example10
Sequential Operations (continued)Input operations
To receive data values from the outside world
Get a value for r, the radius of the circle
Output operationsTo send results to the outside world for display
Print the value of Area
11
Conditional and Iterative OperationsSequential algorithm
Executes its instructions in a straight line from top to bottom and then stops
Control operations – allow us to get more complex
Conditional operations
IF X=10 THEN … do some stuff
Iterative operations
WHILE X < 100 … do some other stuff13
Conditional and Iterative Operations (continued)Conditional operations
Ask questions and choose alternative actions based on the answers
Example
if x is greater than 25 then
print x
else
print x times 100
Invitation to Computer Science, Java Version, Second Edition 14
Conditional and Iterative Operations (continued)Iterative operations
Perform “looping” behavior; repeating actions until a continuation condition becomes false
Loop
The repetition of a block of instructions
15
Conditional and Iterative Operations (continued)
Examples while j > 0 do
set s to s + aj
set j to j - 1
repeatprint ak
set k to k + 1
until k > n
16
Conditional and Iterative Operations (continued)Components of a loop
Continuation condition – when do we stop?
Loop body – what we want to repeat
Infinite loop
The continuation condition never becomes false and the loop runs forever
This is usually an errorInvitation to Computer Science, Java Version, Second Edition 18
Figure 2.5Third Version of the Average Miles per Gallon Algorithm
Invitation to Computer Science, Java Version, Second Edition 19
Conditional and Iterative OperationsPretest loop
Continuation condition tested at the beginning of each pass through the loop
It is possible for the loop body to never be executed
Ex: While loop
Invitation to Computer Science, Java Version, Second Edition 20
Conditional and Iterative Operations (continued)Post-test loop
Continuation condition tested at the end of loop body
Loop body must be executed at least once
Ex: Do - While loop
Invitation to Computer Science, Java Version, Second Edition 21
One other operation - functionsSomeone (possibly not you) writes a function.
This function performs some action, like averaging three numbers, and returns a result to you.
You call the function, and it returns a result
A function accepts parameters (the numbers to average in this case) and you include these parameters when you call the function.
23
One other operation - functionsAverage (98, 77, 100) then gives me the
average of the 3 numbers
Assuming the function was written correctly
Essential for creating re-usable code, not reinventing the wheel, etc.
Many, many built in functions (methods) in Java.
24
Example 1: Looking, Looking, LookingExamples of algorithmic problem solving
Sequential search: find a particular value in an unordered collection
Find maximum: find the largest value in a collection of data
Pattern matching: determine if and where a particular pattern occurs in a piece of text
25
Example 1: Looking, Looking, Looking (continued)Task
Find a particular person’s name from an unordered list of telephone subscribers
Algorithm outline
Start with the first entry and check its name, then repeat the process for all entries
26
Example 1: Looking, Looking, Looking (continued)Correct sequential search algorithm
Uses iteration (loops) to simplify the task
Handles special cases (like a name not found in the collection)
27
Figure 2.9The Sequential Search Algorithm
28
Uses the variable Found to exit the iteration as soon as a match is found
Example 1: Looking, Looking, Looking (continued)
The selection of an algorithm to solve a problem is greatly influenced by the way the data for that problem are organized
29
Example 2: Big, Bigger, BiggestTask
Find the largest value from a list of values
Algorithm outline
Keep track of the largest value seen so far (initialized to be the first in the list)
Compare each value to the largest seen so far, and keep the larger as the new largest
Invitation to Computer Science, Java Version, Second Edition 30
Example 2: Big, Bigger, Biggest (continued)Once an algorithm has been developed, it may
itself be used in the construction of other, more complex algorithms
Library
A collection of useful algorithms – created (usually) by someone else.
Don’t reinvent the wheel – many solutions to common problems are available, particularly in Java
An important tool in algorithm design and development
31
Example 3: Meeting Your MatchTask
Find if and where a pattern string occurs within a longer piece of text
Algorithm outline
Try each possible location of pattern string in turn
At each location, compare pattern characters against string characters
Invitation to Computer Science, Java Version, Second Edition 33
Example 3: Meeting Your Match (continued)Abstraction
Separating high-level view from low-level details
Key concept in computer science – “LAYERS”
Makes difficult problems intellectually manageable
Allows piece-by-piece development of algorithms
34
Example 3: Meeting Your Match (continued)Top-down design
When solving a complex problem:
Create high-level operations in first draft of an algorithm
After drafting the outline of the algorithm, return to the high-level operations and elaborate each one
35
Example 3: Meeting Your Match (continued)Pattern-matching algorithm
Contains a loop within a loop
External loop iterates through possible locations of matches to pattern
Internal loop iterates through corresponding characters of pattern and string to evaluate match
Invitation to Computer Science, Java Version, Second Edition 36
Figure 2.12Final Draft of the Pattern-Matching Algorithm
Invitation to Computer Science, Java Version, Second Edition 37
SummaryAlgorithm design is a first step in
developing an algorithm
Must also:
Ensure the algorithm is correct
Ensure the algorithm is sufficiently efficient
Pseudocode is used to design and represent algorithms
38
top related