Ed
mês passado
Vamos analisar cada afirmativa com base no algoritmo Counting Sort aplicado ao vetor A = {4, 1, 5, 0, 1, 6, 5, 1, 5, 3} e k = 7. 1. Primeiro laço: inicializa vetor auxiliar C com zeros, tamanho k=7: C = {0,0,0,0,0,0,0}. 2. Segundo laço: conta a frequência de cada elemento de A e armazena em C. Elementos de A e suas frequências: - 0: 1 vez - 1: 3 vezes - 3: 1 vez - 4: 1 vez - 5: 3 vezes - 6: 1 vez - 2: 0 vezes Logo, C após o segundo laço deve ser: C = {1,3,0,1,1,3,1}. Portanto, afirmativa I está correta. 3. Terceiro laço: acumula os valores em C, somando o valor atual com o anterior. C acumulado: - C[0] = 1 - C[1] = 1 + 3 = 4 - C[2] = 4 + 0 = 4 - C[3] = 4 + 1 = 5 - C[4] = 5 + 1 = 6 - C[5] = 6 + 3 = 9 - C[6] = 9 + 1 = 10 Portanto, C = {1,4,4,5,6,9,10}. A afirmativa II diz que C = {0,3,3,4,5,8,9}, o que está incorreto. 4. Último laço: coloca os elementos na posição correta no vetor A, usando C para determinar a posição. Primeira iteração do último laço: o último elemento de A é 3. C[3] = 5, então o valor 3 será colocado na posição 4 (índice 4) do vetor A (considerando índice começando em 0). Portanto, afirmativa III está correta. 5. A posição 4 (índice 4) não é a última posição do vetor A a ser preenchida; a última posição é a 9 (índice 9). Portanto, afirmativa IV está incorreta. Conclusão: apenas as afirmativas I e III estão corretas. Alternativa correta: d) I e III.