Today computer technologies have closely entered our life. They entered into the dictionary of an ordinary person a number of 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

## Attempts to define the 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 during the decision 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 never been encountered (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 needs to be precisely defined 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 act 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 meaning. 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 the solution of the problem with the overall look. That is, it is applicable for all tasks of a certain class, regardless of the source data. They are chosen from a certain field, entitled “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

The algorithms have a structure that is typically displayed in the diagram. A diagram is called its graphic representation in the form of connected blocks. Each of them shows one of the steps of the algorithm. A description of the specific actions contained within each block. Such schemes usually are drawn for ease of programming, as they are clear and provide the ability to visually perceive the amount of work you need to accomplish. People can comprehend the process, correct it before the error.

## Algorithm development rules

- The first rule is that you need to identify a large number of objects that can give in built algorithm. The programmer using coding translates them into data. They are input and output. The first serve to start the second become its result. This is called data conversion.
- The second rule suggests that the algorithm requires memory. After all, without it will not be able to accommodate input, work with them and to weekend. The memory consists of cells. If one of them is to give a name, it will become 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.