While going through the topic of data structures and algorithms, we must know, what exactly an Algorithm means. Concrete understanding and visualization provides a solid foundation to understand and grasp the subject at hand.

So, this article is our try to define and explain What an Algorithm is.

## The Definition

An algorithm is a sequence of well-defined operations which provides solution to a specific problem. Simple and fair enough! Isn’t it?

As, there are multiple problems, so are the multiple solutions to those. And hence, multitudes of algorithms exists.

As a single problem can have multiple solution, so a single computational problem can have multiple computational algorithms.

Above picture defines Algorithm and Solution as two things but they are not. It is shown as such simply to make it understandable.

**Algorithm itself is the solution to the given problem.**

Generally, an algorithm converts a given input to a required output.

## Introduction to Algorithms (CLRS) Definition

Informally, an

algorithmis any well-defined computational procedure that takes some value, or set of values asinputand produces some value, or set of values, asoutput.

Input is either explicitly given or is deducible from the problem itself.

## What is the difference between an Algorithm and a Computer Algorithm?

Algorithms are independent of the computer world.

Computational solutions are only trying to solve the real-life problems through computers. As Algorithms solves problems, computer algorithms solves the problems in the computational world.

**A Computer Algorithm is a sequence of instructions to be executed to solve a computational problem.**

So, computational algorithms are just a subset of algorithms in general.

## Point Taken

From this article on, you should see a software (Although hardware is also a part, but our scope of discussion is only limited to software) as a solution to a specific problem. The whole solution works as a collection of sub-solutions interacting with each other.