# What is an Algorithm

Algorithm is a procedure for solving a problem. It is basically the description of steps for computation of a problem. This is also referred as a step by step procedure to solve a problem. It abstracts the data, operations and the semantics of a problem and then creates a solution using all those abstractions. It describes the process of solving a particular problem. A computer program can also be viewed as an elaborate algorithm.

The main points about algorithms are:

What are the inputs for that particular algorithm? What will be the output with respect to the given inputs? How much time will be required for that algorithm to solve the problem (i.e. the efficiency of that algorithm)?

This means that by giving an input data, a particular algorithm is expected to give the output within a particular time which is counted in time units and speed. It can be implemented in any of the languages (may be C, C++, Java or ASP.net etc…). Algorithm is often rendered in pseudo code. Algorithms are slightly different to pseudo code. An Algorithm is much more descriptive and does not contain mathematical symbols. Pseudo code is the next step in the software development cycle. The algorithms are then translated into descriptions which are pretty much closer to the actual programming language.

Algorithms play a very important role in designing good software and also help in finding best solution to a problem. Algorithm can be formally written down and has very practical consequences to achieve software re-use which helps in saving a lot of time for software developers. There are a number of formalizations of algorithms. E.g. is Turing machine. Using the Turing machine, an algorithm is a description of a states and steps required to compute something.

The computers are increasing in complexities and therefore more and more software algorithms are being used these days. The algorithms have taken a form which is also called hard software. The algorithms have become a basic part in computer’s circuitry and can also stand alone in special devices. A number of different applications algorithms are available which are highly advanced systems. For example – Algorithms such as Artificial intelligence algorithms will be becoming very common in near future. Thus helping day to day needs not only in the field of computers but in other fields as well.