Considere o código Java abaixo, que implementa um método hip...

Próximas questões
Com base no mesmo assunto
Q1861916 Programação
Considere o código Java abaixo, que implementa um método hipotético.

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. 
Alternativas

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