Alternativa D - Mapeamento de caracteres
Análise Detalhada
A questão aborda técnicas fundamentais de manipulação de dados e estruturas de dados. O objetivo é identificar a estratégia ideal para contar frequências (ocorrências) de elementos específicos dentro de um texto.
Por que a Alternativa D é correta?
O Mapeamento de caracteres (frequentemente implementado via tabelas de verdade, arrays/vetores ou dicionários/hash maps) é a técnica padrão para resolver esse problema.
- Conceito: Consiste em criar uma estrutura de armazenamento onde cada tipo de caractere (neste caso, as vogais) está associado a um contador numérico.
- Uso de Vetores: Como mencionado no enunciado ("muitas vezes realizada com a ajuda de vetores"), em linguagens como C ou C++, é comum usar um vetor de tamanho fixo (ex: 256 posições para ASCII), onde o índice representa o código do caractere.
- Exemplo lógico: Se encontrarmos a letra 'a', incrementamos
vetor['a']. - Eficiência: Permite percorrer a string uma única vez (O(n)) e atualizar os contadores instantaneamente.
Por que as outras alternativas estão incorretas?
| Alternativa | Técnica | Por que não se aplica |
|---|
| A | Recursão | É um paradigma de programação (função chamando a si mesma). Embora possa ser usada para iterar sobre a string, não é a definição da técnica de contagem/mapeamento em si. |
| B | Pesquisa Linear | Serve para encontrar um único elemento em uma lista. Contar todas as vogais exigiria repeti-la 5 vezes (uma para cada vogal), sendo ineficiente comparado ao mapeamento direto. |
| C | Ordenação de Bolha | Algoritmo usado para reorganizar dados em ordem crescente ou decrescente. Não tem relação direta com contagem de frequências. |
| E | Busca Binária | Requer que os dados estejam previamente ordenados. Seria muito custoso ordenar o texto antes de contar, além de não permitir acesso direto aos contadores das vogais. |
Conclusão
Para contar quantas vezes cada vogal aparece, precisamos estabelecer uma relação direta entre o caractere e sua quantidade acumulada. Isso define precisamente o processo de Mapeamento de caracteres, onde utilizamos vetores para armazenar esses valores de forma eficiente.
Portanto, a alternativa correta é a D.