# Algorithms

Algorithms are fundamental concepts of computer science. On the notion of an algorithm built all the basic principles of programming - programming for computers.

The word "algorithm" is derived from the name of Khorezm scholar Abu Abdullah Muhammad ibn Musa al-Khwarizmi (algorithm - al-Khwarizmi). Around 825, he wrote an essay in which for the first time gave a description invented in India positional decimal number system. Unfortunately, the Persian original book was not preserved. Al-Khwarizmi has formulated rules for the calculation in the new system, and probably the first to use zero digits for the missing positions in numbers record (her Indian name the Arabs have translated as the "as-sifr" or just "sifr"). Around the same time began to use the Indian digits, and other Arab scientists.

Algorithms – a set of actions with strictly defined performance rules. In computer science, we study different kinds of algorithms – interactive algorithms, data processing algorithms, computational algorithms, the control algorithms for robots, machines and other technical devices.

For a description of the algorithms used by the block diagram. However, the block diagram difficult to draw, them difficult to make changes and corrections because of the difficulty of redrawing frames and arrows.

The main properties of algorithms and programs for computers – uniqueness, effectiveness, accuracy. These properties differ from the algorithms of various kinds of vague and ambiguous regulations, instructions and recipes that can be interpreted and executed by many ways.

The uniqueness of the algorithms – is unambiguous rules for their implementation. Algorithms as a result of this property guarantees the uniqueness of the results of their performance in the same initial conditions. This is not always true for recipes where different performers in the same conditions, can impart a different flavor and piquancy of the same dishes.

The efficiency – a completion of the algorithm for determining the results. Algorithms and programs that do not give results, or leading to malfunction and failure, no one needs.

Algorithms are particularly important for applications where the algorithms and programs should provide a solution to a whole class of problems with different input data.

The correctness of the algorithm determines the accuracy of the results obtained through them. For this reason, the correctness of algorithms and software is a relative concept.