Înapoi la blog
#algoritmi#începători#informatică#bacalaureat

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:

  1. Pui apă în filtru.
  2. Adaugi cafeaua măcinată.
  3. Pornești aparatul.
  4. Aștepți să curgă.
  5. 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țieNumeExemplu
O(1)constantaccesezi un element după index
O(n)liniarparcurgi o listă o dată
O(n²)pătraticcompari fiecare element cu fiecare
O(log n)logaritmiccă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.