ALGORITHM: A computational method is a method for solving
a specific type of problem by means of a nite set of steps operating on inputs,
which are quantities given to it before execution of the steps begins or during
executing, and producing one or more outputs, which have a specified relation to
the inputs, its play an important role in mathematics: Ancient mathematical
literature contains descriptions of algorithms for a variety of tasks.
In the modern internet world, man feels that just by entering
what he wants to search into the computers he can get information as desired by
him. He believes that, this is done by computer. A common man seldom understands
that a man made procedure called search has done the entire job and the only
support provided by the computer is the execution speed and organized storage of
information.
CHARACTERISTICS OF AN ALGORITHM
Let us try to present the scenario of a man brushing his own shoes as an
algorithm as follows:
Step 1. Take the brush
Step 2. Apply the polish
Step 3. Start brushing
Step 5. Stop
The definiteness and effectiveness of an instruction implies the
successful termination of that instruction. However the above two may not be
sufficient to guarantee the termination of the algorithm. Therefore, while
designing an algorithm care should be taken to provide a proper termination for
algorithm. Thus, every algorithm should have the following five characteristic
feature.
-
Input
-
Output
-
Definiteness
-
Effectiveness
-
Termination
Therefore, an algorithm can be defined as a sequence of definite
and effective instructions, which terminates with the production of correct
output from the given input.
HOW TO DEVISE THE ALGORITHMS
The process of devising an algorithm is both an art and a
science. This is one part that cannot be automated fully. Given a problem
description, one have to think of converting this into a series of steps, which,
when executed in a given sequence solve the problem. To do this, one has to be
familiar with the problem domain and also the computer domains. This aspect may
never be taught fully and most often, given a problem description, how a person
proceeds to covert it into an algorithm becomes a matter of his "style" - no
firm rules become applicable here.
For the purpose of clarity in understanding, let us consider the following
example.
Problem: Finding the largest value among n>=1 numbers.
Input: the value of n and n numbers
Output: the largest value
Steps :
-
Let the value of the first be the largest value denoted by BIG
-
Let R denote the number of remaining numbers. R=n-1
-
If R != 0 then it is implied that the list is still not exhausted. Therefore look the next number called NEW.
-
Now R becomes R-1
-
If NEW is greater than BIG then replace BIG by the value of NEW
-
Repeat steps 3 to 5 until R becomes zero.
-
Print BIG
-
Stop
End of algorithm
HOW TO VALIDATE THE ALGORITHMS
Once an algorithm has been devised, it becomes necessary to show
that it works. i.e it computes the correct answer to all possible, legal inputs.
One simple way is to code it into a program. However, converting the algorithms
into programs is a time consuming process. Hence, it is essential to be
reasonably sure about the effectiveness of the algorithm before it is coded.
This process, at the algorithm level, is called "validation". Several
mathematical and other empirical methods of validation are available. Providing
the validation of an algorithm is a fairly complex process and most often a
complete theoretical validation, though desirable, may not be provided.
Alternately, algorithm segments, which have been proved else where may be used
and the overall working algorithm may be empirically validated for several test
cases. Such methods, although suffice in most cases, may often lead to the
presence of unidentified bugs or side effects later on.
HOW TO TEST THE ALGORITHMS
If there are more then one possible way of solving a problem,
then one may think of more than one algorithm for the same problem. Hence, it is
necessary to know in what domains these algorithms are applicable. Data domain
is an important aspect to be known in the field of algorithms. Once we have more
than one algorithm for a given problem, how do we choose the best among them?
The solution is to devise some data sets and determine a performance profile for
each of the algorithms. A best case data set can be obtained by having all
distinct data in the set.
A control constructs present in the given below algorithms, A
conditional statement has the following form :
If < condition> then
Block 1
Else
Block 2
If end.
This pseudo code executes block1 if the condition is true
otherwise block2 is executed.
2. The two types of loop structures are counter based and
conditional based and they are as follows
For variable = value1 to value2 do
Block
For end
Here the block is executed for all the values of the variable
from value 1 to value 2.
There are two types of conditional looping, while type and
repeat type.
While (condition) do
Block
While end.
Here block gets executed as long as the condition is true.
Repeat
Block
Until<condition>
Here block is executed as long as condition is false. It may be
observed that the block is executed at least once in repeat type.
Summary
In this article the concepts of algorithm are presented and the
properties of the algorithm are also given.