ÎnțelegeInfo

Vectori de frecventa

Vizualizari 24

Postat vineri, 4 iulie 2025

Definiție

Un vector de frecvență este o structură de date utilizată pentru a contoriza de câte ori apare fiecare element (caracter, cifră, număr, etc.) într-o mulțime sau într-un șir.

Este frecvent utilizat în algoritmică pentru a rezolva probleme de tipul: "De câte ori apare un element?"

Reprezentare

Vectorul de frecvență este un tablou (array) în care fiecare poziție reprezintă un element, iar valoarea de la acea poziție reprezintă numărul de apariții al elementului.

Exemplu:

// Vector de frecvență pentru cifre (0-9)
int frecventa[10] = {0}; // Inițializare cu 0

int cifre[] = {3, 5, 3, 9, 5, 5};
int n = sizeof(cifre)/sizeof(cifre[0]);

for (int i = 0; i < n; i++) {
    frecventa[cifre[i]]++;
}
    

Aplicabilitate

Exemplu

Verificarea dacă două cuvinte sunt anagrame folosind vectori de frecvență:

bool suntAnagrame(string a, string b) {
    if (a.size() != b.size()) return false;

    int frecA[26] = {0}, frecB[26] = {0};

    for (char c : a) frecA[c - 'a']++;
    for (char c : b) frecB[c - 'a']++;

    for (int i = 0; i < 26; i++)
        if (frecA[i] != frecB[i])
            return false;

    return true;
}