Questão FC373256
Considere o método abaixo, em uma aplicação Java, em condições ideais. public static void ordenar (int[] vetor) { for (int i = 0; i < vetor.length - 1; i++) { int indiceMaior = i;
Linguagens de Programação
FCC · 2023
Considere o método abaixo, em uma aplicação Java, em condições ideais.
public static void ordenar (int[] vetor) {
for (int i = 0; i < vetor.length - 1; i++) {
int indiceMaior = i;
for (int j=i+1; j < vetor.length; j++) {
...I...
}
int temp = vetor[indiceMaior];
vetor[indiceMaior] = vetor[i];
vetor[i] = temp;
}
}
Para que o método ordenar ordene o vetor recebido em ordem decrescente, a lacuna I deve ser preenchida por
- if (vetor[j] < vetor[indiceMaior]) {indiceMaior = j;}
- if (vetor[j] < vetor[indiceMaior]) {indiceMaior = i;}
- if (vetor[j]> vetor[indiceMaior]) {indiceMaior = j;}
- if (vetor[j]> vetor[indiceMaior]) {indiceMaior = i;}
- if (vetor[i]> vetor[indiceMaior]) (indiceMaior = j;)
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A instrução if (vetor[j] > vetor[indiceMaior]) { indiceMaior = j; } faz a verificação essencial dentro do laço interno: compara o elemento atual (índice j) com o elemento apontado por indiceMaior e, se for maior, atualiza esse índice.
Isso garante que, ao final do laço interno, indiceMaior contém a posição do maior elemento entre as posições de i até o fim do vetor. Em seguida a rotina realiza a troca entre vetor[i] e vetor[indiceMaior], colocando o maior disponível na posição i.
O efeito global é ordenar o vetor em ordem decrescente, pois cada iteração fixa o maior restante na frente. O método implementa o algoritmo Selection Sort, com complexidade \(O(n^2)\) no pior e no melhor caso.
Conteúdo do catálogo FC Concursos · Atualizado em