Logo Passei Direto
Buscar

Inglês

UNIFIEO
O algoritmo counting sort constitui uma alternativa eficiente para a ordenação de dados em memória, já que ele demanda um tempo computacional da ordem de Θ(n) No entanto, ele taz maior uso do espaço em memória, por precisar que vetores auxiliares sejam criados durante sua execução. Considerando a execução do algoritmo sobre um vetor A = {4, 1, 5, 0, 1, 6, 5, 1, 5, 3}, em que todos os valores são menores que k = 7, analise as afirmativas a seguir. l. Após o primeiro laço que inicializa cada posição do vetor auxiliar C com zero, o segundo laço finaliza com o vetor C = { 1, 3, 0, 1, 1, 3, 1 II. Ao término do terceiro laço, o vetor auxiliar C definido no corpo do algoritmo terá os seguintes valores armazenados {0, 3, 3, 4, 5, 8, 9}_ III. A primeira iteração do último laço do algoritmo faz com que o valor 3 seja atribuído à posição 4 do vetor A. IV. A posição 4 corresponde à última posição do vetor A a ser preenchida pelo laço final do algoritmo. Está correto apenas o que se afirma em:
User badge image
Tiago Moura

mês passado

Respostas

User badge image

Ed Verified user icon

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.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina