# Algorithm is ... Algorithm diagram

Today computer technologies have closely entered our life. They entered into the dictionary of an ordinary person many terms, the meanings of which are not always clear to him. But everyone uses them. For example, what is an algorithm? An ordinary user will not be able to give you a clear answer, but it is necessary to know this, since we are faced with this every day.

## History of the origin of the term

The concept of an algorithm was first formed by a mathematician named Mohammed Al-Khorezmi. He lived in the East in the 8th-9th centuries and wrote two great works. The first gave rise to the word “algebra”, and the second to the notion “algorithm”. He denoted arithmetic operations, which we know as addition, subtraction, multiplication, and division. In 1957, in one of the editions of the English dictionary, the authors decided that the algorithm is an obsolete concept. Again, it actively entered into use only with the advent of computers. They were designated actions that were part of a specific process. But it does not have to be just mathematical.This implies an algorithm of actions of any nature, for example, the preparation of a dish. Since that time, this concept has not disappeared from the mouth of almost all people.

## Attempts to define a term

For a long time, this term was considered solely as an algorithm for numbers and actions with them. After all, mathematics itself was mostly applied science. Formulas that are used for calculations, at that time were considered algorithms. The steps that were performed in solving were elementary, and the calculations themselves were very cumbersome and took a lot of time and effort. Mathematicians did not even think about defining this concept. But over time, science developed more and more and objects appeared that had not been encountered before (matrices, vectors, sets, etc.). All of them had to operate. This gave impetus to the understanding that the algorithm is a difficult concept, and it must be precisely determined for further use. Scientists are divided on this issue. Some thought that the algorithm was applicable to everything, while others doubted that every problem could be solved with its help.The latter point of view turned out to be true, but it was possible to justify it only by giving a precise definition of the concept “algorithm”.

## What does the term "algorithm" mean?

Every day a person has to solve problems that have different complexity. We are so used to simple things that we perform actions to solve them automatically. Above the complex you need to think pretty. When a problem appears, we solve it step by step, acting in steps. So in mathematics, for example, to find the unknown in the equation, you need to proceed step by step. These operations, which gradually lead to the solution of the problem, are called an algorithm. An algorithm is a sequence of actions that are individually its steps. They have a certain place and must strictly follow each other. There are classes of algorithms, they are called complexity classes. Each of them includes a certain set of tasks that have approximately the same complexity of the solution.

## Properties common to all algorithms

In addition to algorithms, in our world there are many other instructions. But thanks to some properties, we can distinguish it from the rest. These include:

- Discreteness - the algorithm of the algorithm foresees the solution of the problem posed through successive actions that are performed in strict order.
- Certainty - all the conditions set are clear and do not have any double-valuedness. The algorithm of actions, thus, does not give a place for any improvisations. This allows you to mechanically do everything without needing additional tips.
- Efficiency - for a certain number of steps, the algorithm always gives the correct solution to the problem.
- Mass - the algorithm is a solution to the problem that has a general view. That is, it is applicable to all tasks of a particular class, regardless of the source data. They are chosen from a certain field called the "area of applicability of the algorithm."

## Types of algorithms

Depending on different conditions, such as goal, solution path, initial data, algorithms are divided into:

- Mechanical - rigid, the only correct sequence to achieve the desired result (ensuring the operation of the engine, etc.).
- Flexible: 1) probabilistic - have several ways to achieve the right decision; 2) heuristic - an algorithm scheme that does not have an unambiguous program of actions (prescriptions, etc.), because it is based on the personal qualities of a person, his experience.
- Auxiliary - previously developed and fully intended to solve a specific problem.

## Algorithms in computer science

For computer science, algorithms have a special meaning. In this science they are divided into the following types:

- Linear - all actions are performed sequentially, one after another.
- A branching algorithm is one in which the fulfillment of a certain condition leads to the choice of one of two possible options for further actions.
- Cyclic - the same actions are repeated on different source data, so the most suitable ones are selected.

## Algorithm structure

Algorithms have their own structure, which is usually displayed in the scheme. The scheme of the algorithm is called its graphic image in the form of blocks connected with each other. Each of them displays one of the steps of the algorithm. The description of the specific action is contained within each block. Such schemes are usually drawn to facilitate programming, as they are visual and provide an opportunity to visually perceive the amount of work that needs to be done. A person can comprehend the process, correct it even before errors occur.

## Algorithm development rules

- The first rule is that you need to identify a large number of objects that can succumb to the constructed algorithm. The programmer translates them into data using encoding. They are input and output. The first serve to start work, the second become its result. This is called data conversion.
- The second rule says that working with an algorithm requires free memory. After all, without it, it will not be possible to place the input data, work with them and get the weekend. The memory consists of cells. If one of them is given a name, it will become a variable.
- The third rule has already been described above as one of the characteristics of the algorithm, namely, discreteness. That is, the algorithm consists of individual operations or steps.
- The fourth rule is reminiscent of the determinism of the algorithm. That is, after each action you need to specify which one will be next, or stop the process.
- The last rule says that after a certain number of steps, the algorithm completes its work, having one or another result. And which one, the programmer himself points out.

Thus, the algorithm is a complex concept that until the advent of a computer was used only in mathematics and was considered obsolete.Today it is used in all spheres of life, one of the most important is computer science.