FC ConcursosFC Concursos

Questão FC266068

Observe o algoritmo escrito em pseudocódigo a seguir: para x \(\gets\) 2 até tamanho_vetor faça conteudo \(\gets\) vetor[x] y \(\gets\) x - 1 enquanto y > 0 e vetor[y] > conteudo,

Algoritmos e Lógica de Programação

IDECAN · 2022

Observe o algoritmo escrito em pseudocódigo a seguir:

 

para x \(\gets\) 2 até tamanho_vetor faça

conteudo \(\gets\) vetor[x]

y \(\gets\) x - 1

enquanto y > 0 e vetor[y] > conteudo, faça

vetor[y + 1] \(\gets\) vetor[y]

y \(\gets\) y - 1

fim enquanto

vetor[y + 1] \(\gets\) conteudo

fim para

 

Supondo que o índice inicial é a posição 1 e que foram digitados como entrada os números {7,9,2,1,6}, assinale a alternativa que indica corretamente a saída alcançada após a execução do algoritmo.

  1. {7,9,2,1,6}
  2. {9,7,6,2,1}
  3. {1,2,6,7,9}
  4. {1,7,9}
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

O pseudocódigo implementa o método de inserção (insertion sort): para cada índice \(x\) a partir de 2, guarda-se em conteudo o valor a inserir e deslocam-se à direita os elementos maiores que ele até achar a posição correta.

No exemplo inicial {7,9,2,1,6} (índice começando em 1):

x=2: conteudo=9 → nenhum deslocamento → {7,9,2,1,6}
x=3: conteudo=2 → desloca 9 e 7 para a direita, insere em posição 1 → {2,7,9,1,6}
x=4: conteudo=1 → desloca 9,7,2 → insere em posição 1 → {1,2,7,9,6}
x=5: conteudo=6 → desloca 9 e 7 → insere entre 2 e 7 → {1,2,6,7,9}

O comando chave é vetor[y + 1] ← vetor[y], que realiza os deslocamentos; ao final, o vetor fica em ordem crescente: {1,2,6,7,9}.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo