da Wikipedia

È la specificazione di una sequenza finita di operazioni (dette anche istruzioni) che consente di risolvere tutti i quesiti di una stessa classe o di calcolare il risultato di un’espressione matematica.

Un algoritmo deve essere:

  • finito: è costituito da un numero finito di istruzioni e deve sempre terminare;
  • deterministico: partendo dagli stessi dati in ingresso, si devono ottenere i medesimi risultati;
  • non ambiguo: le operazioni non devono poter essere interpretate in modi differenti;
  • generale: deve essere applicabile a tutti i problemi della classe a cui si riferisce, o ai casi dell’espressione matematica.