Algorithm
Algorithm
Algorithm
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.
Example
Let's try to learn algorithm-writing by using an example.
Problem Design an algorithm to add two numbers and display the
result.
step
step
step
step
step
step
step
1
2
3
4
5
6
7
START
declare three integers a, b & c
define values of a & b
add values of a & b
store output of step 4 to c
print c
STOP
1
2
3
4
5
START ADD
get values of a & b
ca+b
display c
STOP
Hence, many solution algorithms can be derived for a given problem. The
next step is to analyze those proposed solution algorithms and
implement the best suitable solution.
Algorithm Analysis
Efficiency of an algorithm can be analyzed at two different stages, before
implementation and after implementation. They are the following
Algorithm Complexity
Suppose 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.
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.
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.