Un algoritm este o succesiune de paşi finită, cu punct unic de intrare şi de ieşire, care conduce într-un timp finit la rezolvarea unei clase de probleme.
Algoritmul trebuie să fie general (să nu fie particularizat pe date de intrare specifice) şi fiecare pas al său trebuie să fie clar specificat.
Performanţa unui algoritm se măsoară prin consumul de resurse hardware, şi anume cantitatea de memorie necesară şi cantitatea de resurse CPU consumată.
În zilele noastre principalul accent este pus pe gradul de consum al resurselor CPU, deoarece deseori cantitatea de memorie oferită de chip-urile de memorie este suficientă pentru majoritatea algoritmilor.
Până recent, majoritatea algoritmilor erau scrişi pentru un singur procesor.
În zilele noastre se remarcă apariţia din ce în ce mai desă a sistemelor multi-procesor, de aceea se încearcă descrierea şi implementarea algoritmilor clasici pentru astfel de sisteme, pentru a reduce complexitatea lor atunci când avem la dispoziţie mai multe procesoare.