Today, computer technology has become a part of our lives. They have added a lot of terms to the dictionary of an ordinary person, the meanings of which are not always clear to him. But they are all used. For example, what is an algorithm? You can not give a clear answer to an ordinary user, but you need to know this, as we face this every day.

## History of 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 for the most part an applied science. Formulas that are used for computation at that time were considered algorithms. The steps that were taken 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 giving a definition of this concept. But over time, science developed more and more objects appeared, which previously did not occur (matrices, vectors, sets, etc.). All of them needed to operate. This gave impetus to the understanding that the algorithm is not an easy concept, and it must be accurately determined for further use. Scientists were divided on this issue. Some thought that the algorithm was applicable to everything, while others doubted that each problem could be solved with its help. The last point of view turned out to be correct, but it could be justified by giving a precise definition to the notion of an "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 take automatic actions to solve them. Over complex, you need to think hard. When a problem arises, 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, gradually leading to the solution of the task, are called an algorithm. An algorithm is a sequence of actions, which individually are its steps. They have a certain place and must strictly follow one another. There are classes of algorithms, they are called complexity classes. To each of them carry a certain set of problems, which have approximately the same complexity of the solution.

## Properties common to all algorithms

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

- Discreteness - the algorithm scheme foresees the solution of the task posed through successive actions that are performed in strict order.
- Certainty - all the conditions are clear and do not have any two-valued. The algorithm of actions, thus, does not give a place for any improvisations. This allows you to mechanically perform everything without needing additional hints.
- Effectiveness - for a certain number of steps the algorithm always gives the correct solution of 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 solution; 2) heuristic - the scheme of the algorithm, which does not have an unambiguous program of actions (prescriptions, etc.), because it is based on the personal qualities of the person, his experience.
- Auxiliary - previously developed and fully designed to solve a specific task.

## Algorithms in Informatics

For computer science, algorithms are of particular importance. In this science they are divided into such types:

- Linear - all actions are performed sequentially, one by one.
- 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 action.
- Cyclic - the same actions are repeated over different initial data, thus the most suitable ones are selected.

## Structure of algorithms

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.

## Rules for compiling algorithms

- 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 separate operations, or steps.
- The fourth rule recalls the determinism of the algorithm. That is, after each action, you must specify what 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 indicates.

Thus, the algorithm is a complex concept that, before the advent of computers, 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.