Un'algoritmo è un insieme di passi elementari necessari per risolvere un determinato problema.
Le sue caratteristiche sono:
- Finitezza: l'algoritmo deve essere composto da un numero finito di passi.
- terminazione: dopo l' esecuzione di un numero finito di passi l' algoritmo deve terminare.
- determinatezza: l' algoritmo non deve essere ambiguo, cioè deve essere univocamente interpretabile.
- effettività: l' azione specificata in ogni passo deve essere effettivamente eseguibile dall'esecutore.
- generalità: l' algoritmo deve essere progettato per risolvere una classe di problemi simili.