Algoritmii pot fi clasificati in functie de natura lor in trei mari categorii: algoritmi deterministi, algoritmi probabilisti si algoritmi aproximativi. Algoritmii deterministi dau intotdeauna acelasi rezultat pentru acelasi set de date de intrare, algoritmii probabilisti pot duce la rezultate diferite pentru aceeasi intrare si pot necesita generarea de numere aleatoare, in timp ce algoritmii aproximativi ofera un raspuns apropiat de solutia optima intr-un timp acceptabil.