# What is an algorithm? Definition, characteristics and types. Computational algorithm

An algorithm allows us to carry out a task or find the solution to a certain problem through a series of well-defined and structured instructions, which must also be in order, that is to say one after another, and to be finite, that is to say to have a possible solution. In this way, having defined an initial state and an entry, if we follow the formulated instructions we will reach the final state and find the solution to the problem or reach the defined objective.

The general consensus is that the algorithms are use only in mathematics related questions. Although the term algorithm is very present in this area and in all other areas in which data structuring is used, such as computing, logic and other areas related to numbers, the truth is that algorithms are used much more than we think, and in all aspects of our daily life.

If you want to learn more about the fascinating world of algorithms and see how they relate to practically every order of our lives, we invite you to continue reading the article until the end.

## What is an algorithm

The term algorithm comes from the classical Arabic language “ḥisābu lḡubār”, then transformed into Latin “Alborarismus”, which according to experts could be translated as [1 9459007] “calculation using Arabic numerals”. The origin of the word goes back to the Middle Ages, more precisely from the hand of the mathematician Al_ Khwarizmi, in an area of ​​Central Asia today known as Uzbekistan, in Central Asia.

Basically, the algorithm it is an ordered series of processes or steps that must be carried out to reach the solution to a specific problem. The algorithms can be of different types, those of daily life such as following the instructions for brushing teeth, starting a washing machine and the algorithms used to solve or carry out more complicated processes such as running a program of computing.

One of the characteristics of the algorithms is that we They allow defining a series of steps to follow that must be performed to achieve the desired result, that is, a predictable result. At this point it is worth to highlight an example of the use of algorithms : computer software, which consists of precise instructions to carry out a procedure in the same way, but written in a programming language.

However, the use of algorithms is not limited to computers or automated systems, since algorithms are also present in nature and in our lives. Basically any task that should be carried out using instructions and rules defined for them could be considered as an algorithm. An example of this would be washing hands and similar tasks, as we will see below in this same post.

## Types of algorithms

In simple terms, there are two types of algorithms. The first are the so-called “conventional algorithms”, which are those that people carry out every day in their daily events, in order to achieve a certain objective, such as making breakfast, or to solve problems in your workday, such as scheduling what you will have for lunch based on the time you have available.

Although it may seem too simple, the truth is that if we take away the meaning of the algorithm, which basically dictates that it is “logical and finite sequence of steps that allows solving a problem or meeting a certain objective” any of the examples cited fit perfectly to the meaning of the algorithm.

The other type of algorithms are called “computational algorithms” which are here Those who use computer applications and software to perform the tasks that we ask of them or the automatic actions that devices perform without our request. Again if we take the definition of algorithm, we are going to fulfill all the required conditions.

It should be noted at this point that all the arithmetic and algebraic operations related to algorithms are included in a science called Algorithmia. If we want to know more about computational algorithms, we invite you to continue reading the rest of the post, where you will find important definitions on the subject.

Computational algorithm

We have all heard the word “Algorithm” related to computer science, such as when talking about “Google algorithm” or “Facebook algorithm”. This is because nothing happens in computing without a series of steps, which definitely make up an algorithm.

In this sense, the algorithm is the fundamental element of any computer program, and is not related to the programming language used to develop it, but in the steps that must be carried out to achieve the objective, it is say the set of instructions and steps developed to carry out the task assigned to the software.

This in a nutshell means that the software developer must first write the algorithm and then translate it into the language of programming that best suits your own needs and customer requirements. With this, the computer engineer ensures that he has a solid base from which to start creating a methodology with well-defined and finite scenarios, that is, they must end at some point in their journey.

Basically the use of an algorithm in computing offers us the possibility of finding a generic solution to a certain problem, and will allow us to reuse it whenever it is necessary to achieve the desired objective.

## Characteristics of an algorithm

Up to this point we have talked about the different types of algorithms and their origins, but we need to know one more than important point, which are the fundamental characteristics that every algorithm must meet. That is why below these lines we will find the fundamental points that a process must fulfill to be considered a true algorithm.

• The first thing we must consider is that an algorithm must be precise : that is why the exact order of execution of each step involved in the process must be indicated.
• Another more important point to consider is that an algorithm must be perfectly defined. This means that in the case of running the same more than twice, the same result must always be obtained regardless of the number of times it is followed.
• It is also necessary to know that an algorithm must be finite, is to say that the algorithm must culminate at some point in its execution, expressed in other words, it must have a number of well-defined steps to complete its task.
• Likewise, a algorithm has to be readable. This means that the text it describes must be clear and concise, in a way that allows its immediate understanding, that is, without elaborate or unclear procedures.
• Finally, an algorithm must be defined in three fundamental parts, which are: Entry, Process and Exit. If you want to know more about this topic, later in this same post you will find information about it.

## Characteristics of computational algorithms

Originally, the idea of ​​bringing this concept from the field of mathematics to the field of incipient computing was proposed by the English mathematician Alan Turing, who laid the foundations to define the basic elements of an algorithm applied to computer science, which should be the following:

• A limited sequence of steps, they must be clearly defined. Also these steps must be independent of each other.
• An agent, who can be in some cases a human operator and in other cases part of the program itself is the actor whose task is apply each of the process steps at a specific point along the route.
• This agent must have the ability to interpret the operational instructions and simultaneously have the possibility of store the information supplied by the program itself.
• The result obtained when performing the certain operations of the program must always behave the same, at each step of the operation, taking into account of course the configuration of the initial input data.
• The operation always must end with a concise result .

At this point it should be noted that q There are cases in which the procedure requires a specific result to be offered, and other cases in which it is not necessary. That is why the repetitive or irregular algorithms that do not finish are so common in the programming of applications for computers.

The best example of this is modern operating systems like Windows , Linux or the Mac computer OS, which must continue to run to allow the other applications and processes of the computer to continue fulfilling their function or task.

## Parts of an algorithm

From this point, we will know the basic rules of the parts that they must conform an algorithm to be considered as such. Basically, the algorithms must be made up of three main parts which are input, process and output, regardless of whether they are computational algorithms, non-computational algorithms, qualitative algorithms or quantitative algorithms.

Here below We will find the characteristics that each phase of an algorithm must have.

 Entry This phase of the algorithm corresponds to the data from input that must be fed to it. Basically it is the information that is delivered to the algorithm, that is, the data values ​​with which it will have to offer a certain result. Process The second phase of an algorithm occupies the necessary calculations to process the data with which we have fed the algorithm, that is to say that at this point the information delivered to the input of the algorithm, and with which the expected result must be reached. Output The third and last phase of an algorithm is where the result of the operation is obtained, that is to say the transformation of the data that was provided in the input phase and developed in the process phase.

## How to make an algorithm

In In the case that we need to carry out our own algorithm to be able to solve problems or improve some process in our activity, we can carry it out quite simply, since all we have to do is make it clear that we need and How can we solve it?

For this we must carry out the series of necessary steps and their derivations in order to reach the expected result of the problem at hand. The steps to define and specify our algorithm are the following:

• First step: Previous analysis of the problem or need. The first thing we have to do, before starting the development of any algorithm is to carry out a detailed analysis of the situation or problem.
• Second step: Define the requirements . In this step you must define exactly the problem that we have to solve and break it down, including all the derivations that may arise.
• Third step: The identification of the modules. In this step, clearly identifying the modules is as important as identifying the requirements. This is so because correctly identifying the modules will serve us to considerably simplify the implementation of the steps of the algorithm correct for our problem, and which we have identified in the previous step.
• Fourth step: The creation of the algorithm. At this point we must ensure that the algorithm meets all the appropriate requirements to carry out the entrust function. This is similar for both non-computational algorithms and computational algorithms. In the case of being a computational algorithm, it must also comply with certain characteristics to be able to later implement it in any programming language.
• Fifth step: The implementation of the algorithm. In the chaos of computational algorithms, their implementation must be carried out by translating it into a programming language so that any computer can interpret its instructions and send the necessary information to its hardware in order to complete the corresponding steps and thus obtain the expected result.
• Sixth step: Creation of the tools to carry out the algorithm. In the latter, and if we were able to correctly complete all the previous steps, we will be in a position to create the necessary tools to be able to execute the developed algorithm. In the case of being a computational algorithm, we can develop through any programming language an application to carry it out, which will have a series of instructions that ordered one after the other may represent the algorithm that we have designed and be able to offer a solution to the identified requirements. In cases where it is a non-computational algorithm, we can develop what is necessary taking into account the steps that the algorithm must follow, such as a production line.

## Examples of application of algorithms

The algorithms can be applied in any field, and they are not at all absent from daily life, that is, they are not just calculations that are applied in certain fields scientists, since in our daily life we ​​can find dozens of examples of algorithms, which most of the time go unnoticed by all of us.

Examples of algorithms in daily life are the digestion process, which is basically an algorithm concept that we live with every day without having to implicitly know its definition for it to occur. This means that in order for us to carry out the digestion process every day, it is not necessary for us to know how it works or the actors involved in the procedure.

Algorithms are run countless times a day, but we have become accustomed to them or perhaps simply ignore that they are, because we are unfamiliar with the algorithm concept.

One fact to note is that algorithms in everyday life, do not differ too much from algorithms used in computer science. In the following example, we propose to compare the algorithm described with some given situation in real life. We assure you that you will be surprised by the result!

For the example we have performed an algorithm where it is determined if a person can enter a mechanical attraction in an amusement park.