Algorithm
“A process or set
of rules to be followed in calculations or other problem-solving operations,
especially by a computer.” Algorithm is a step-by-step procedure,
which defines a set of instructions to be executed in a certain order to get
the desired output. Algorithms are generally created independent of underlying
languages, i.e. an algorithm can be implemented in more than one programming
language.
Characteristics of an
Algorithm
Not all
procedures can be called an algorithm. An algorithm should have the following
characteristics −
·
Unambiguous − Algorithm should be clear and unambiguous. Each of its
steps (or phases), and their inputs/outputs should be clear and must lead to
only one meaning.
·
Input − An algorithm should have 0 or more well-defined inputs.
·
Output − An algorithm should have 1 or more well-defined outputs,
and should match the desired output.
·
Finiteness − Algorithms must terminate after a finite number of steps.
·
Feasibility − Should be feasible with the available resources.
·
Independent − An algorithm should have step-by-step directions, which
should be independent of any programming code.
Control floating in algorithm:
Basically in algorithm
there are 3 types of control floating in algorithm.
1.
Sequence
2.
Branching
3.
Looping.
Sequence
control flow:
Flow of instruction will be step
after step.
Example
Problem − Design an
algorithm to add two numbers and display the result.
Step 1 − START
Step 2 − declare three integers a, b & c
Step 3 − define values of a & b
Step 4 − add values of a & b
Step 5 − store output of step 4 to c
Step 6 − print c
Step 7 − STOP
Algorithms
tell the programmers how to code the program. Alternatively, the algorithm can
be written as
Step 1 − START ADD
Step 2 − get values of a & b
Step 3 − c ← a + b
Step 4 − display c
Step 5 − STOP
Branching control flow:
Flow of instruction will have
power of decision making.
Example
Problem − Design an
algorithm to big number between two numbers.
Step 1 − START
Step 2 − declare two integers a, b.
Step 3 – is a>b
Step 3.1— yes, print a is big.
Step 3.2— no, print b is big
Step 4 − STOP
Looping
control flow:
Flow of
control make loop of instruction until condition false.
Example
Problem − Design an
algorithm to print 1 to 10 numbers.
Step 1 − START
Step 2 − declare one integers a.
Step 3 – loop until a<=10
Step 3.1— yes, print a, a=a+1 .
Step 3.2— no, go to Step 4.
Step 4 − STOP
Algorithm Complexity
X is an algorithm and n is the size of input data, the
time and space used by the algorithm X are the two main factors, which decide
the efficiency of X.
·
Time Factor − Time
is measured by counting the number of key operations such as comparisons in the
sorting algorithm.
·
Space Factor − Space
is measured by counting the maximum memory space required by the algorithm.
The
complexity of an algorithm f(n) gives
the running time and/or the storage space required by the algorithm in terms of n as the size of input data.
Space Complexity
Space
complexity of an algorithm represents the amount of memory space required by
the algorithm in its life cycle. The space required by an algorithm is equal to
the sum of the following two components −
·
A fixed part that is a space required to store certain data and
variables, that are independent of the size of the problem. For example, simple
variables and constants used, program size, etc.
·
A variable part is a space required by variables, whose size depends
on the size of the problem. For example, dynamic memory allocation, recursion
stack space, etc.
Space
complexity S(P) of any algorithm P is S(P) = C + SP(I), where C is the fixed
part and S(I) is the variable part of the algorithm, which depends on instance
characteristic I. Following is a simple example that tries to explain the
concept −
Algorithm: SUM(A, B)
Step 1 - START
Step 2 - C ← A + B + 10
Step 3 - Stop
Here we have
three variables A, B, and C and one constant. Hence S(P) = 1 + 3. Now, space
depends on data types of given variables and constant types and it will be
multiplied accordingly.
Time Complexity
Time
complexity of an algorithm represents the amount of time required by the
algorithm to run to completion. Time requirements can be defined as a numerical
function T(n), where T(n) can be measured as the number of steps, provided each
step consumes constant time.
For example,
addition of two n-bit integers takes n steps. Consequently, the total computational time is T(n) =
c ∗ n, where c is the time taken for the addition of two bits. Here,
we observe that T(n) grows linearly as the input size increases.
Comments
Post a Comment