Intelegeinfo

  • ro
  • us
  • Vectori de frecventa

    Vizualizari 118

    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;
    }