A finite set of steps that must be followed to solve any problem is called an algorithm. Algorithm is generally developed before the actual coding is done. It is written using English like language so that it is easily understandable even by non-programmers.
Sometimes algorithms are written using pseudocodes, i.e. a language similar to the programming language to be used. Writing algorithm for solving a problem offers these advantages −
Promotes effective communication between team members
Enables analysis of problem at hand
Acts as blueprint for coding
Assists in debugging
Becomes part of software documentation for future reference during maintenance phase
These are the characteristics of a good and correct algorithm −
Has a set of inputs
Steps are uniquely defined
Has finite number of steps
Produces desired output
Let us first take an example of a real-life situation for creating algorithm. Here is the algorithm for going to the market to purchase a pen.
Step 4 in this algorithm is in itself a complete task and separate algorithm can be written for it. Let us now create an algorithm to check whether a number is positive or negative.