Ce este un algoritm? Ghid pe înțelesul tuturor
Un algoritm explicat simplu, cu exemple din viața de zi cu zi și din programare. Înveți ce înseamnă pas cu pas, complexitate și de ce contează la informatică.
Dacă ai auzit cuvântul algoritm și ți s-a părut intimidant, ai răbdare: e una dintre cele mai simple idei din informatică. Folosești algoritmi în fiecare zi, fără să-ți dai seama.
Definiția pe scurt
Un algoritm este o secvență finită de pași clari care rezolvă o problemă sau duce la un rezultat. Atât. Trebuie să respecte câteva condiții:
- finit — se termină la un moment dat, nu rulează la nesfârșit;
- clar — fiecare pas e neambiguu, știi exact ce ai de făcut;
- corect — produce rezultatul așteptat pentru orice intrare validă.
Un algoritm pe care îl folosești deja
Gândește-te cum faci o cafea:
- Pui apă în filtru.
- Adaugi cafeaua măcinată.
- Pornești aparatul.
- Aștepți să curgă.
- Torni în cană.
Asta e un algoritm. Are pași în ordine, se termină, și rezultatul e clar: o cafea.
Același lucru, dar în cod
Hai să traducem o problemă simplă: să găsim cel mai mare număr dintr-o listă.
def maxim(numere):
cel_mai_mare = numere[0] # presupunem că primul e cel mai mare
for n in numere[1:]: # parcurgem restul
if n > cel_mai_mare: # dacă găsim unul mai mare...
cel_mai_mare = n # ...îl reținem
return cel_mai_mare
print(maxim([3, 9, 2, 7])) # afișează 9
Logica e exact ca atunci când cauți cel mai înalt coleg din clasă: te uiți la fiecare pe rând și reții mereu pe cel mai înalt văzut până acum.
De ce vorbim despre "complexitate"
Doi algoritmi pot rezolva aceeași problemă, dar unul poate fi mult mai rapid. Aici intervine complexitatea: o măsură a câtă muncă face algoritmul în funcție de mărimea datelor.
| Notație | Nume | Exemplu |
|---|---|---|
| O(1) | constant | accesezi un element după index |
| O(n) | liniar | parcurgi o listă o dată |
| O(n²) | pătratic | compari fiecare element cu fiecare |
| O(log n) | logaritmic | căutare binară |
Algoritmul de mai sus e O(n): dacă lista crește de 10 ori, și munca crește de 10 ori. Rezonabil.
Un algoritm bun nu e doar unul care merge — e unul care merge eficient chiar și când datele cresc.
De ce contează la Bac și mai departe
La Bacalaureatul de Informatică, mare parte din subiecte cer să scrii sau să înțelegi algoritmi: sortări, căutări, parcurgeri. Dar dincolo de examen, gândirea algoritmică e fix ceea ce te face un programator bun — capacitatea de a sparge o problemă mare în pași mici și clari.
Următorii pași
- Exersează scriind în cuvinte (pseudocod) înainte să scrii cod.
- Începe cu probleme mici: maxim, minim, sumă, numărare.
- Întreabă-te mereu: se termină? e clar? e corect?
Dacă vrei să exersezi cu cineva care îți explică pe înțelesul tău, la ByteSchool lucrăm exact așa: pas cu pas, cu exemple, fără să sari peste fundamente.