An algorithm is a procedure having well defined steps for solving a particular problem. Algorithm is finite set of logic or instructions, written in order for accomplish the certain predefined task. It is not the complete program or code, it is just a solution (logic) of a problem, which can be represented either as an informal description using a Flowchart or Pseudo code.
The major categories of algorithms are given below:
- Sort: Algorithm developed for sorting the items in certain order.
- Search: Algorithm developed for searching the items inside a data structure.
- Delete: Algorithm developed for deleting the existing element from the data structure.
- Insert: Algorithm developed for inserting an item inside a data structure.
- Update: Algorithm developed for updating the existing element inside a data structure.
The performance of algorithm is measured on the basis of following properties:
- Time complexity: It is a way of representing the amount of time needed by a program to run to the completion.
- Space complexity: It is the amount of memory space required by an algorithm, during a course of its execution. Space complexity is required in situations when limited memory is available and for the multi user system.
Each algorithm must have:
- Specification: Description of the computational procedure.
- Pre-conditions: The condition(s) on input.
- Body of the Algorithm: A sequence of clear and unambiguous instructions.
- Post-conditions: The condition(s) on output.
Example: Design an algorithm to multiply the two numbers x and y and display the result in z.
- Step 1 START
- Step 2 declare three integers x, y & z
- Step 3 define values of x & y
- Step 4 multiply values of x & y
- Step 5 store the output of step 4 in z
- Step 6 print z
- Step 7 STOP
. Alternatively the algorithm can be written as ?
- Step 1 START MULTIPLY
- Step 2 get values of x & y
- Step 3 z← x * y
- Step 4 display z
- Step 5 STOP
Characteristics of an Algorithm
An algorithm must follow the mentioned below characteristics:
- Input: An algorithm must have 0 or well defined inputs.
- Output: An algorithm must have 1 or well defined outputs, and should match with the desired output.
- Feasibility: An algorithm must be terminated after the finite number of steps.
- Independent: An algorithm must have step-by-step directions which is independent of any programming code.
- Unambiguous: An algorithm must be unambiguous and clear. Each of their steps and input/outputs must be clear and lead to only one meaning.