Il termine algoritmo deriva dal nome del matematico persiano Mohammed ibn-Musa al-Khowarismi vissuto nel IX secolo d.C.
Lo usiamo per indicare una "descrizione di una successione di azioni che permettono di risolvere un problema assegnato".Risolvere un problema significa individuarne un processo risolutivo, ovvero un insieme di regole (o istruzioni), che, eseguite secondo un ordine prestabilito, permettano di trovare il risultato del problema a partire dai dati di ingresso.
Chiameremo Algoritmo tale insieme di regole.Poichè si è interessati ad algoritmi che possono essere eseguiti in modo automatico, è importante chiarire quali proprietà questi devono rispettare:
NON AMBIGUITA' - le regole devono essere univocamente interpretabili dall'esecutore dell'algoritmo;- ESEGUIBILITA' - l'esecutore deve essere in grado, con le risorse a sua disposizione, di eseguire ogni singola regola;
- FINITEZZA - l'esecuzione dell'algoritmo deve finire in un tempo finito.