Considere o código Java abaixo, que implementa um método hip...
public static void hipotetico(int vetor[]){
boolean troca = true; int aux;
while (troca) {
troca = false;
for (int i = 0; i < vetor.length - 1; i++) {
if (vetor[i] > vetor[i + 1]) {
aux = vetor[i];
vetor[i] = vetor[i + 1];
vetor[i + 1] = aux;
troca = true;
}
}
}
}
Assinale a alternativa que apresenta CORRETAMENTE os valores do vetor resultante da execução desse método, considerando um vetor passado como argumento, com os seguintes valores: 1; 4; 2; 9; 6.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - 1; 2; 4; 6; 9.
Vamos entender o porquê dessa ser a resposta correta:
O código Java apresentado na questão é uma implementação do algoritmo de ordenamento Bubble Sort. Esse algoritmo percorre o vetor repetidas vezes, comparando pares de elementos adjacentes, e os troca de posição caso estejam na ordem errada. O processo se repete até que nenhuma troca seja necessária, indicando que o vetor está ordenado.
No código, a variável troca é usada como uma flag para determinar se alguma troca foi feita durante a iteração sobre o vetor. Se nenhuma troca é realizada, isso significa que o vetor está ordenado e o loop while é encerrado.
O vetor inicial é [1, 4, 2, 9, 6]. Seguindo o algoritmo:
- Na primeira passagem, o algoritmo irá comparar os elementos e realizará as trocas necessárias. Após a primeira iteração completa, o vetor será [1, 2, 4, 6, 9] - a maior número (9) estará na última posição correta.
- Como houve trocas, a variável troca foi definida como true, portanto, o loop while continua.
- Na segunda passagem, o algoritmo irá comparar os elementos novamente, mas como eles estão todos na ordem correta, nenhuma troca é feita e a variável troca permanece false.
- Sem mais trocas, o loop while é encerrado, pois a condição troca é false, indicando que o vetor está ordenado.
Assim, os valores do vetor resultante são 1; 2; 4; 6; 9, o que corresponde à Alternativa A.
O conhecimento necessário para resolver essa questão envolve entender o funcionamento do algoritmo de ordenação Bubble Sort e como as estruturas de controle de fluxo, tais como loops while e for, são usadas em Java para manipular arrays. Ao analisar o código e entender o processo do algoritmo, é possível determinar o estado final do vetor após a execução do método.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
É um Bubble Sort otimizado implementado sem erros.
O array será ordenado. GAB A
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo