# Characteristics of an algorithm with explanations

As we know that, algorithms provide us the procedure to solve any problem. Below are some characteristics that define a good algorithm:

• Independent – Any algorithm developed should be written in such a way that it is easily understood and can be implemented on any programming language.This is called language independence and  a good algorithm is always independent of the programming language as it will provide the same output despite of the language on which it is implemented on.
• Input – When the user is asked to input something from his side that should be easily understandable as what the input is (ie. character or integer or a decimal number). If there is a program that does not need any user input like pattern programs then such programs should directly produce output without prompting/asking the user to input something.
• Output – After taking some inputs from the end-user algorithm should produce an output based on the provided input.The output to be produced should be well defined in the algorithm.
• Finiteness -Any algorithm must be designed in such a way that it should produce output in a finite amount of time. It should not run for infinite time.The output should be produced within a few seconds.
• Unambiguous – The steps defined in an algorithm should be very clear and unambiguous. As it should convey clear meaning in the steps and should not make any confusion to the one who is reading it.
• Feasible – The algorithm developed should be applicable with  the current technology and available resources. It should be workable with the present technology and should not contain any future technology reference.

Every algorithm developed today is measured on the above-defined matrices and it should be considered while designing a new algorithm.