De ce contează?
Dimineața, când faci un sandviș, urmezi pași în ordine: iei pâinea, tai, pui unt, adaugi ce vrei. Dacă sari un pas sau îi schimbi ordinea, rezultatul e greșit. Un algoritm funcționează exact așa — o listă de instrucțiuni precise, în ordine, care rezolvă o problemă.
Definiție
Un algoritm este o secvență finită de pași bine definiți care rezolvă o problemă sau realizează o sarcină.
Trei proprietăți obligatorii:
- Finit — se termină după un număr limitat de pași
- Precis — fiecare pas e clar, fără ambiguitate
- Corect — produce rezultatul așteptat pentru orice date de intrare valide
„Adaugă puțină sare" NU este un pas algoritmic — „puțin" e ambiguu. „Adaugă 3 grame de sare" este precis.
Primul tău algoritm: găsește maximul
Problemă: Ai trei numere. Găsește-l pe cel mai mare.
Algoritm în cuvinte:
- Citește numerele
a,b,c - Presupune că maximul este
a - Dacă
b > maxim, atunci maximul devineb - Dacă
c > maxim, atunci maximul devinec - Afișează maximul
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
int maxim = a;
if (b > maxim) maxim = b;
if (c > maxim) maxim = c;
cout << maxim << endl;
return 0;
}Testează cu a=5, b=5, c=5. Algoritmul returnează 5 — corect. Testează și cu numere negative: a=-3, b=-1, c=-7 → returnează -1. Un algoritm bun funcționează pentru toate cazurile valide, nu doar pentru cele ușoare.
De ce contează ordinea pașilor?
Dacă ai scrie:
int maxim = a;
if (c > maxim) maxim = c; // am schimbat ordinea
if (b > maxim) maxim = b;Rezultatul este același — ordinea b/c nu contează aici. Dar în alți algoritmi ordinea este critică. Exemplu: la sortare, dacă schimbi ordinea comparațiilor obții un șir nesortat.
Greșeală frecventă: inițializezi maximul cu 0 în loc de a. Funcționează dacă numerele sunt pozitive, dar pentru a=-5, b=-3, c=-8 returnează 0 — greșit. Inițializează mereu cu primul element din șir, nu cu o valoare fixă.
Algoritmi în viața de zi cu zi
| Situație | Algoritm |
|---|---|
| Rețetă de prăjitură | Pași în ordine, ingrediente precise |
| GPS — ruta cea mai scurtă | Algoritm Dijkstra |
| Căutare pe Google | Algoritmi de indexare + ranking |
| Recunoaștere față (Face ID) | Algoritmi de machine learning |
Toți pornesc de la același principiu: pași precisi, în ordine, care transformă o intrare într-o ieșire corectă.