Algoritmii fundamentali (sortare, căutare, interclasare) reprezintă baza programării și a gândirii algoritmice, fiind esențiali pentru pregătirea Bacalaureatului la Informatică. Sortarea aranjează elementele unui șir într-o ordine specifică, căutarea găsește un element într-o structură de date, iar interclasarea combină două șiruri sortate într-unul singur. Elevii trebuie să înțeleagă diferențele de complexitate și să poată implementa corect acești algoritmi în limbajul C++ (sau Pascal).
Sortarea este procesul de aranjare a elementelor unui șir într-o ordine specifică (crescătoare sau descrescătoare). Cei mai importanți algoritmi de sortare sunt:
Pentru Bac se cer cunoașterea și implementarea algoritmilor elementari, precum și analiza eficienței.
Exemplu – Sortare prin selecție (Selection Sort): Fie vectorul v = [5, 2, 8, 1, 9]. Se parcurge vectorul: la pasul 1, găsim minimul (1) și îl interschimbăm cu primul element: [1, 2, 8, 5, 9]. Pasul 2 – minimul din [2,8,5,9] este 2, deja la locul lui. Pasul 3 – minimul din [8,5,9] este 5, se interschimbă cu 8: [1,2,5,8,9]. Pasul 4 – minimul din [8,9] este 8. Rezultat final: [1,2,5,8,9].
Căutarea este procesul de găsire a unui element într-o structură de date.
Exemplu – Căutare binară: Fie vectorul sortat v = [2, 5, 8, 12, 16, 23, 38] și x=23. Se inițializează stânga=0, dreapta=6. Mijloc = (0+6)/2=3, v[3]=12 < 23, deci stânga=4. Noul mijloc = (4+6)/2=5, v[5]=23 == x, deci s-a găsit pe poziția 5. Complexitate O(log n).
Interclasarea (merge) combină două șiruri sortate într-unul singur, sortat, în O(n+m). Este utilizată în algoritmul Merge Sort și în probleme de unificare a vectorilor. În problemele de Bac, interclasarea apare frecvent la prelucrarea fișierelor și la combinarea a doi vectori ordonați.
Exemplu – Interclasare a doi vectori sortați: A = [1, 4, 7], B = [2, 3, 8]. Se compară primii elemente: 1<2, se adaugă 1. Apoi 4>2, se adaugă 2. Apoi 4>3, se adaugă 3. Apoi 4<8, se adaugă 4. Apoi 7<8, se adaugă 7. Apoi se adaugă ultimul element rămas din B, 8. Rezultat: [1,2,3,4,7,8].
Elevii trebuie să înțeleagă diferențele de complexitate și să poată implementa corect acești algoritmi în limbajul C++ (sau Pascal). De asemenea, este importantă aplicarea lor în contexte precum sortarea unui vector, căutarea unui element, determinarea frecvențelor, eliminarea duplicatelor etc.
Concepte cheie: Sortare (Bubble, Selection, Insertion, Quick), Căutare liniară și binară, Interclasare a doi vectori sortați, Complexitate temporală O(n), O(n log n), O(n²), Aplicarea algoritmilor în probleme Bacalaureat.
Metoda backtracking și algoritmii greedy sunt tratați separat, dar sortarea, căutarea și interclasarea sunt bazele pe care se construiesc soluții mai avansate. Pentru o pregătire temeinică, se recomandă rezolvarea a cât mai multor probleme de pe site-uri de evaluare (PbInfo, InfoArena) și analiza atentă a cerințelor din variantele de Bac.
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.