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.
- {7,9,2,1,6}
- {9,7,6,2,1}
- {1,2,6,7,9}
- {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