# Algorithm and its characteristics An algorithm is a sequence of finite instructions, frequently used for calculations and data processing. It is a type of method in which a list of instructions for completing a task will, when given an initial state, proceed through a well-defined series of successive states, eventually terminating in an end state.

In making a diagnosis, a step by step method of solving a problem or making decisions, There are some characteristics that every algorithms online training should follow and which deals with various aspects of the algorithm.

They are as follows:

• Input specified
• Output specified
• Definiteness
• Effectiveness
• Finiteness
• Independent
• Feasible

Let us see these characteristics :

Input specified

• During the computation to produce the output, the input is the data to be transformed.
• Which data do you need to begin to get the result you want?
• Input precision requires that you know what kind of data,  how much the data and what form the data should be and
• An algorithm should have 0 or well-defined inputs.

Output specified

• The output is the data arising from the computation
• Constantly the name of the algorithm contains the output:
• “Algorithm to compute bashing average”.
• Output precision requires that you know what kind of data, how much, and what form the output should be.
• An algorithm should have 1 or defined outputs and should match the desired output.

Definiteness

• Algorithms must specify each and every step and the order the steps must be taken in the process.
• Definiteness means identifying the sequence of operations for turning into output.
• Details of each step must also be spelled out (how to handle error).
• The algorithm should be clear and ambiguous.
• It should contain everything quantitative and not qualitative.

Effectiveness

• For an effective algorithm, it means that all those steps that are required to get to output MUST BE DOABLE!
• All outputs must be feasible with the available resources.
• It should not contain any unnecessary and essential steps which could make an algorithm ineffective.

Finiteness

• The algorithm must stop eventually!
• Finiteness is not an issue for non-computer algorithms.
• Stopping may mean that you get the anticipated output or you get a response that no solution is possible.
• Computer algorithms often rely on instructions with different data and finiteness may be a problem.
• An algorithm must conclude after a limited number of steps.
• An algorithm should not be infinite and always terminate after a definite number of steps.

Independent

• An algorithm should have step by step directions, which should be autonomous of any programming code.
• It should be such that it could be run on any of the programming languages.
• Thus these are the attributes that an algorithm should have for its fruitfulness.

Feasible

• The algorithm must be simple, genric, and practical, such that it can be executed upon the available resources.
• It must not contain some future automation or anything.

Complexity of algorithm

It is very easy to classify algorithms training based on the relative amount of and space they require and specify the growth of time/ space requirements as a function of the input size. Thus we have the notions of:

• Time complexity:Running time of the program as a function of the size of the output.
• Space complexity: during the program execution amount of computer memory required, as a function of the input size.