An algorithm has three characteristics:
- Has a finite description of a computation in terms of elementary instructions
- Is a deterministic procedure: next step is uniquely defined
- Always produces a result no matter the input (i.e. halts)
An algorithm has three characteristics: