# Algorithm

Algorithm is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation.

- Algorithm500 related topics

## Randomized algorithm

A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic or procedure.

## Heuristic (computer science)

Technique designed for solving a problem more quickly when classic methods are too slow or for finding an approximate solution when classic methods fail to find any exact solution.

Heuristics underlie the whole field of Artificial Intelligence and the computer simulation of thinking, as they may be used in situations where there are no known algorithms.

## Data processing

Data processing is, generally, "the collection and manipulation of items of data to produce meaningful information."

Data analysis uses specialized algorithms and statistical calculations that are less often observed in a typical general business environment.

## Computer science

Study of computation, automation, and information.

Computer science spans theoretical disciplines (such as algorithms, theory of computation, and information theory) to practical disciplines (including the design and implementation of hardware and software).

## Muhammad ibn Musa al-Khwarizmi

Persian polymath from Khwarazm, who produced vastly influential works in mathematics, astronomy, and geography.

His name gave rise to the terms algorism and algorithm, as well as Spanish, Italian and Portuguese terms algoritmo, and Spanish guarismo and Portuguese algarismo meaning "digit".

## Cryptography

Practice and study of techniques for secure communication in the presence of adversarial behavior.

Modern cryptography is heavily based on mathematical theory and computer science practice; cryptographic algorithms are designed around computational hardness assumptions, making such algorithms hard to break in actual practice by any adversary.

## Cryptanalysis

Cryptanalysis (from the Greek kryptós, "hidden", and analýein, "to analyze") refers to the process of analyzing information systems in order to understand hidden aspects of the systems.

Global deduction – the attacker discovers a functionally equivalent algorithm for encryption and decryption, but without learning the key.

## Euclidean algorithm

Efficient method for computing the greatest common divisor of two integers (numbers), the largest number that divides them both without a remainder.

It is an example of an algorithm, a step-by-step procedure for performing a calculation according to well-defined rules,

## Computation

Computation is any type of arithmetic or non-arithmetic calculation that follows a well-defined model (e.g., an algorithm).

## Turing machine

Mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules.

Despite the model's simplicity, it is capable of implementing any computer algorithm.