Algorithm is a finite step-by-step process for solving a problem that begins
with a problem statement.
It is this problem statement that programmers use to formulate an
algorithm for solving the problem.
The process of building algorithms and algorithm analysis occurs before
any program code has been written.
For the same problem, there can be more than one solution (more than
one algorithm) to solve.