# Definition, properties, and types of algorithms

In the world of information technology conceptalgorithm takes a central place. The term itself came from the name of Al-Khorezmi, an Uzbek medieval mathematician who in the 9th century was able to clearly describe the rules for performing simple arithmetic operations-that is, he composed the first algorithms.

**Algorithm - Definition**

In modern computer science and mathematics, this term has such definitions:

- a sequence of actions in which the rules of execution are strictly defined;

- a prescription that determines the sequence and content of the operations, performing which the original data comes to the desired result;

- an accurate description of any computational process or any other sequence of actions;

- the most complete and accurate order of the sequence of the final number of actions that are necessary for the favorable solution of any problem of a similar type.

The algorithm can be performed by a person orautomatic device - the so-called formal performer. The task of any performer is the most accurate implementation of the existing algorithm. The formal performer is not obliged to delve into the essence of the process, often because he is unable to understand it. As an example of a formal performer, you can bring a washing machine that will perform the specified washing program even in the absence of washing powder or laundry in the tank.

The algorithm executor can execute commandsonly from a strictly specified list, which is a system of commands. For each team, the terms of applicability are specified and the results are described. For each call of the team, the performer responds with an appropriate elementary action.

The universal executor of the algorithm in computer science is the computer.

**Algorithm and its properties**

1)*Discreteness*(or separation, discontinuity of the process)means that the algorithm represents the process of solving problems in the form of sequential execution of previously defined simple steps. Each subsequent action can be performed only after the end of the previous one.

2)*Certainty*implies that all rules of the algorithm must be clear and unambiguous. Then the execution of the algorithm will acquire the necessary mechanical character without additional instructions or information.

3)*Effectiveness*(or finiteness) of the algorithm means that it must lead to the required result for a specific finite number of steps.

4)*Grassroots*Is the universality of the application of the algorithm togroup of some similar tasks, differing only in the set of initial data. The initial data can be selected from the so-called domain of applicability of the algorithm.

Depending on the goals, initial conditions, ways of solving the problem, determining the actions of the performer, the following**types of algorithms**:

1)*Probabilistic*(or stochastic) give several ways to solve the problem, which lead to the probable achievement of the result.

2)*Heuristic*types of algorithms imply that achievingThe final result after the implementation of the program of actions is not uniquely determined. Similarly, there is no clear sequence of actions of the performer. Such algorithms can include, for example, regulations and instructions. In their writing, general methods of decision-making and logical procedures based on analogies that arise in connection with past experience are used.

3)*Linear*types of algorithms mean the construction of a set of commands or instructions, performed in strict sequence one after another.

4)*Branching*algorithms contain at least one condition, after which the computer can go to one of several possible steps.

5)*Cyclic*types of algorithms provide for multiplerepetition of one action or operation on new initial data. For example, these algorithms include most of the methods for calculating and enumerating options. So there is a so-called program cycle - that is, a series, a sequence of commands (the body of the loop), which is executed repeatedly until some condition is satisfied.