### Algorithm

An algorithm is a set of instructions to solve specific problems or to perform a computation. In TypeScript algorithms can be implemented with functions.

#### Algorithm Characteristics

Algorithms have defining characteristics such as:

**Generality**: The algorithm must apply to a set of defined inputs.**Definiteness**/**Uniqueness**: At any point in time, there is at most one possibility of continuation. Each instruction step is well-defined.**Deterministic**: Given a particular input, the algorithm will always produce the same output.**Effectiveness**: The algorithm terminates in a finite amount of time / steps. Every execution of the algorithm delivers a result.**Finiteness**: The algorithm is described in a finite amount of steps.**Feasibility**: It should be feasible to execute the algorithm with the available resources.