i.) Finiteness: An algorithm must always terminate after a
finite number of steps.
ii.) Input: An algorithm has zero or more inputs- quantities
that are given to it initially before the algorithm begins, or
dynamically as the algorithm runs. These inputs are
taken from specified sets of objects.
iii.) Definiteness: Each step of an algorithm must be
precisely defined; the actions to be carried out must be
rigorously specified for each case.