Questão nº 29
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 29)
Pedro adotou o algoritmo apresentado a seguir para ordenar um vetor de inteiros V, com índices variando de 1 até n.
```
Para K de 2 até n faça:
X <- V[K]
W <- (K – 1)
Enquanto W > 0 e V[W] > X faça:
V[W+1] <- V[W]
W <- (W-1)
Fim Enquanto
V[W+1] <- X
Fim Para
```
O algoritmo utilizado por Pedro foi o:
- ASelection Sort;
- BInsertion Sort; (alternativa correta)
- CBubble Sort;
- DMerge Sort;
- EQuick Sort;
Resposta comentada
Gabarito Alternativa B
O Insertion Sort (Ordenação por Inserção) é um algoritmo de ordenação que constrói a lista final ordenada um item por vez. Ele itera sobre os elementos de entrada, removendo um elemento por vez, encontrando o local correto dentro da lista já ordenada e inserindo-o lá.
- (A) Incorreta: O Selection Sort funciona encontrando repetidamente o menor (ou maior) elemento da parte não classificada e colocando-o no início (ou fim) da parte classificada. O algoritmo dado não busca o menor elemento para trocar, mas sim insere um elemento em sua posição correta deslocando outros.
- (B) Correta: O algoritmo apresentado é o Insertion Sort. Ele pega um elemento (
XemV[K]) da parte não ordenada do vetor e o insere na sua posição correta dentro da parte já ordenada (V[1]atéV[K-1]). O laçoEnquanto W > 0 e V[W] > Xé responsável por deslocar os elementos maiores queXpara a direita, abrindo espaço para a inserção deXna posiçãoV[W+1]. - (C) Incorreta: O Bubble Sort compara pares de elementos adjacentes e os troca se estiverem na ordem errada, repetindo o processo até que nenhum elemento precise ser trocado. O algoritmo dado não realiza trocas adjacentes, mas sim desloca múltiplos elementos para abrir espaço.
- (D) Incorreta: O Merge Sort é um algoritmo de divisão e conquista que divide o vetor em duas metades, ordena cada metade recursivamente e depois combina as metades ordenadas. O algoritmo dado é iterativo e não segue essa lógica de divisão e combinação.
- (E) Incorreta: O Quick Sort também é um algoritmo de divisão e conquista que seleciona um "pivô" e particiona o vetor em torno dele, colocando todos os elementos menores que o pivô antes dele e todos os maiores depois. O algoritmo dado não utiliza a estratégia de pivô e partição.
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.