Proprietà di un algoritmo

Affinchè una sequenza ordinata di azioni possa essere realmente considerata un algoritmo, è necessario che essa soddisfi anche una serie di proprietà fondamentali.
Più specificatamente, un algoritmo deve essere:

  • Generale: deve consentire di risolvere tutti i problemi della stessa classe (problemi simili)
  • Finito: deve essere costituito da un insieme finito di azioni ed il numero di volte in cui esse sono eseguite deve essere finito (deve terminare)
  • Non ambiguo: le sue azioni devono essere univocamente interpretabili dagli esecutori per cui è stato progettato, senza lasciare spazio a dubbi o ambiguità
  • Completo/Robusto: deve prevedere ogni possibile situazione di dati in ingresso e comportarsi correttamente in tutti i casi possibili
  • Deterministico: deve restituire gli stessi dati in uscita (output), partendo dagli stessi dati in ingresso (input)
  • Eseguibile: deve esserci un esecutore in grado di eseguire le azioni da cui è composto
  • Efficace: permettere di giungere alla soluzione del problema, utilizzando in modo ottimale le risorse (efficienza), in termini di spazio di memoria e tempi di elaborazione