Methods of Specifying an
Algorithm
Once you have designed an algorithm, you need
to specify it in some fashion. In Section 1.1, to give you an example, Euclid’s
algorithm is described in words (in a free and also a step-by-step form) and in
pseudocode. These are the two options that are most widely used nowadays for
specifying algorithms.
Using a natural language has an obvious appeal;
however, the inherent ambi-guity of any natural language makes a succinct and
clear description of algorithms surprisingly difficult. Nevertheless, being
able to do this is an important skill that you should strive to develop in the
process of learning algorithms.
Pseudocode is a mixture of a natural language and
programming language-like constructs. Pseudocode is usually more precise than
natural language, and its usage often yields more succinct algorithm
descriptions. Surprisingly, computer scientists have never agreed on a single
form of pseudocode, leaving textbook authors with a need to design their own
“dialects.” Fortunately, these dialects are so close to each other that anyone
familiar with a modern programming language should be able to understand them
all.
This book’s dialect was selected to cause
minimal difficulty for a reader. For the sake of simplicity, we omit
declarations of variables and use indentation to show the scope of such
statements as for, if, and while. As you saw in the previous section, we use an arrow “←” for the assignment operation and two slashes “//” for comments.
In the earlier days of computing, the dominant
vehicle for specifying algo-rithms was a flowchart, a method of expressing an
algorithm by a collection of connected geometric shapes containing descriptions
of the algorithm’s steps. This representation technique has proved to be
inconvenient for all but very simple algorithms; nowadays, it can be found only
in old algorithm books.
The state of the art of computing has not yet
reached a point where an algorithm’s description—be it in a natural language or
pseudocode—can be fed into an electronic computer directly. Instead, it needs
to be converted into a computer program written in a particular computer
language. We can look at such a program as yet another way of specifying the
algorithm, although it is preferable to consider it as the algorithm’s
implementation.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.