Un algoritm este o succesiune finită de pași clari, care, urmați în ordine, duc la rezolvarea unei probleme sau la obținerea unui rezultat. O rețetă de gătit, instrucțiunile de montaj ale unui dulap sau explicația pentru a ajunge dintr-un loc în altul sunt algoritmi; în informatică, ei sunt exprimați într-un limbaj pe care îl poate executa un calculator.
Cuvântul a ajuns să fie folosit mult în ultimii ani, adesea ca să explice orice lucru misterios făcut de aplicații. Tabelul de mai jos pune față în față câteva idei răspândite despre algoritmi și ceea ce se știe despre ei.
Mituri și realitate despre algoritmi
| Mit | Realitate |
|---|---|
| Algoritmii există doar în calculatoare. | Sunt orice listă de pași precisi pentru rezolvarea unei probleme. Calculatorul doar îi execută rapid. |
| Un algoritm „gândește”. | Execută pașii pentru care a fost construit. Unii pot învăța din date, dar și acolo urmează reguli matematice, nu gândesc ca un om. |
| Algoritmii sunt întotdeauna obiectivi. | Reflectă alegerile celor care i-au făcut și datele pe care au fost antrenați. Pot moșteni părtiniri. |
| Algoritm înseamnă „inteligență artificială”. | Inteligența artificială folosește algoritmi, dar majoritatea algoritmilor sunt simpli și previzibili, precum sortarea unei liste. |
| Un algoritm bun este unul foarte complicat. | De multe ori, cel mai bun este cel mai simplu care rezolvă problema corect și suficient de rapid. |
| Nimeni nu poate înțelege ce face un algoritm. | Unii sunt foarte complecși sau secreți din motive comerciale, dar principiile pot fi explicate, iar mulți sunt publici. |
Algoritmul în bucătărie
Gândește-te la o rețetă de clătite. Are intrări (ingredientele), pași ordonați (amestecă făina cu ouăle, adaugă laptele, încinge tigaia, toarnă compoziția), condiții (întoarce clătita când marginile se desprind) și un rezultat. Aceleași elemente se regăsesc în orice algoritm: date de intrare, pași bine definiți, decizii și un rezultat. Un detaliu important este precizia: „adaugă puțină sare” e ambiguu pentru un calculator, care are nevoie de instrucțiuni exacte.
De la idee la program
Un programator pornește de la o problemă, de exemplu ordonarea alfabetică a unei liste de nume. Gândește pașii într-o formă abstractă, apoi îi scrie într-un limbaj de programare. Codul scris de om nu este înțeles direct de procesor; trebuie tradus în instrucțiuni simple, proces explicat în materialul despre compilator și modul în care codul devine program. Abia după această traducere, procesorul poate executa pașii.
Ce face un algoritm bun
- Corectitudine: dă răspunsul potrivit pentru toate cazurile pentru care a fost conceput, inclusiv cele neobișnuite.
- Eficiență: folosește un număr rezonabil de pași și de memorie. Doi algoritmi pot rezolva aceeași problemă, dar unul poate dura secunde, iar altul ore, când datele cresc.
- Claritate: poate fi înțeles, verificat și corectat de alți oameni.
- Robustețe: se comportă rezonabil și când datele sunt greșite sau lipsesc.
- Finitudine: se oprește după un număr finit de pași, nu rulează la nesfârșit.
Exemple de algoritmi pe care îi întâlnești zilnic
Sortarea contactelor din telefon, căutarea unui cuvânt într-un document, calcularea traseului dintr-o aplicație de hărți, compresia unei fotografii înainte de trimitere, verificarea parolei, ordonarea rezultatelor într-un motor de căutare. Unii sunt extrem de simpli, alții implică matematică avansată. Cei mai mulți funcționează fără ca tu să-ți dai seama, în fundal.
Algoritmi care învață din date
În sistemele de învățare automată, o parte din reguli nu sunt scrise de om pas cu pas, ci sunt ajustate automat pe baza unui număr mare de exemple. Procesul de ajustare este el însuși un algoritm. Rezultatul poate fi puternic, dar mai greu de explicat, de aceea apar discuții despre transparență și responsabilitate.
Complexitatea: de ce unii algoritmi cresc mai repede decât alții
Doi algoritmi pot rezolva aceeași problemă, dar se comportă diferit când datele devin mari. Să luăm căutarea unui nume într-o listă. Dacă lista este neordonată, trebuie verificate elementele pe rând; la o listă de un milion, în cel mai rău caz sunt un milion de verificări. Dacă lista este ordonată, poți folosi o metodă care înjumătățește de fiecare dată zona de căutare, ca atunci când cauți un cuvânt în dicționar deschizându-l la mijloc. Numărul de pași devine foarte mic chiar și pentru liste uriașe.
Specialiștii descriu această creștere a efortului cu ajutorul noțiunii de complexitate. Nu este nevoie de formule pentru a-i înțelege ideea: întrebarea este cum se schimbă timpul de lucru când dublezi cantitatea de date. Un algoritm eficient crește încet, unul slab crește repede și devine inutilizabil. De aceea, alegerea algoritmului potrivit contează uneori mai mult decât viteza calculatorului pe care rulează.
Cum gândești algoritmic în viața de zi cu zi
Poți aplica această gândire fără calculator: descompune problema în pași mici, ordonează-i, verifică ce se întâmplă în cazurile speciale și testează. Organizarea unei călătorii, planificarea unei zile încărcate sau învățarea unui lucru nou beneficiază de aceeași disciplină. Nu trebuie să știi programare ca să gândești algoritmic.
Un ultim gând: algoritmii nu sunt nici buni, nici răi în sine; ei fac ce li se cere, în limitele datelor și ale regulilor primite. Când un sistem automat ia o decizie care te privește, ai dreptul să întrebi pe ce criterii se bazează, iar răspunsurile bune includ explicații clare, nu doar afirmația că „așa a calculat sistemul”. Înțelegerea ideii de algoritm te ajută să pui aceste întrebări cu mai multă încredere.
Ca să vezi cum se leagă algoritmii de restul tehnologiei, merită parcursă secțiunea despre cum funcționează lucrurile. Explicații suplimentare, scrise pe înțeles, găsești pe LumeaTehnologiei.

