Gabarito disponível
public class P1 {
public static void main(String[] args) {
int a=4;
int [] vetor = {1,2,3,0,a};
a=3;
bS (vetor);
for (int i=0; i<(vetor.length)-1; i++) {
System.out.println (vetor[i]);
}
}
public static void bS (int [] vetor){
boolean houveTroca = true;
while (houveTroca) {
houveTroca = false;
for (int i = 0; i < (vetor.length)-1; i++){
if (vetor[i] > vetor[i+1]){
int variavelAuxiliar = vetor[i+1];
vetor[i+1] = vetor[i];
vetor[i] = variavelAuxiliar;
houveTroca = true;
}
}
}
}
}
Qual é a sequência de valores que será impressa pelo programa ao final de sua execução?
Resolução comentada
O vetor {1,2,3,0,4} é ordenado e o laço de impressão omite o último elemento, imprimindo 0, 1, 2, 3.
O vetor é criado com a=4, ou seja, {1,2,3,0,4}, e a mudança posterior de 'a' não afeta o vetor. O bubble sort o deixa como {0,1,2,3,4}. O laço de impressão vai até length-1 exclusive, então o índice 4 não é impresso e a saída é 0, 1, 2, 3.
Análise das alternativas
A: 4 é o último elemento, que não é impresso, e o 3 aparece na saída. C e E: representam o vetor sem ordenação completa. D: incluiria o 4 e não o 0, o que contraria o vetor ordenado.
Referência: Algoritmo Bubble Sort em Java.
Resolução comentada do VaiConcursos.