SóProvas


ID
2568211
Banca
FCC
Órgão
TRF - 5ª REGIÃO
Ano
2017
Provas
Disciplina
Programação
Assuntos

Considere a classe Java abaixo.

public class Prova{ 

       public static void main(String args[]) {

                       int[] vet = {19, 5, 42, 3, 21};  

                       int aux; 

                       for (int i = 0; i < 5; i++) {  

                            for (int j = 0; j < 5; j++) {  

                                 if (vet [j] > vet [j + 1]) {  

                                     aux = vet [j];  

                                     vet[j] = vet[j + 1]; 

                                     vet[j + 1] = aux;  

                                }

                       } 

                 } 

           }

   }

Para que a classe execute corretamente o algoritmo de ordenação  

Alternativas
Comentários
  • Primero: Saber que o algoritmo de ordenação bubble, bolha ou "demônio das trocas", percorre todo o vetor comparando a posição atual com a próxima. Somente realiza troca entre os comparados, se o valor atual (J) for maior que o próximo (J+1).

    Segundo: Com a ideia de iterar um vetor de 5 posições, é correto colocar a função for (int j = 0; j < 5; j++) dessa forma. Porém nós iremos comparar o elemento atual e o próximo, assim quando chegarmos na última iteração do J fariamos a comparação vet[J] > vet[J+1] (onde J+1 = 6) e estariamos comparando com um valor fora do array, gerando um erro.

  • Buble Sort

    for(i = 0; i<5; i++){

        for(int j = 0; j<4; j++){

            if(vet[j] > vet[j + 1]){

                 aux = vet[j];

                 vet[j] = vet[j+1];

                 vet[j+1] = aux;

                                         }

                                }

                        }

    https://www.devmedia.com.br/entendendo-o-algoritmo-bubble-sort-em-java/24812

  • Quem não tem acesso:  - -> A

  • ERRO: Quando j=4 acontece o seguinte:


    for (int j = 0; j < 5; j++) {

    if (vet [4] > vet [4 + 1])


    Mas não existe vet[5]


    Logo, deve-se corrigir para:

    for(int j = 0; j<4; j++)