Assinale a alternativa que descreve corretamente a operação ...
Assinale a alternativa que descreve corretamente a operação que o método abaixo realiza sobre um vetor (v) de números inteiros.
public void operacao(int[] v) {
for(int i = 0; i < v.length - 1; i++) {
for(int j = 0; j < v.length - 1 - i;
j++) {
if(v[j] < v[j + 1]) {
int aux = v[j];
v[j] = v[j + 1];
v[j + 1] = aux;
}
}
}
}
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: Alternativa C - Ordenação em Ordem Decrescente
Para resolver esta questão, é importante compreender o funcionamento dos algoritmos de ordenação e quais operações eles realizam sobre um vetor. O problema específico requer a análise de um método que manipula um vetor de números inteiros.
Vamos detalhar o que o método faz:
O método operacao(int[] v)
utiliza dois laços for aninhados para percorrer o vetor várias vezes. O loop externo controla o número de passagens pelo vetor, enquanto o loop interno compara elementos adjacentes e realiza trocas se o elemento atual for menor que o próximo elemento.
Vamos examinar o bloco de código dentro do método:
for(int i = 0; i < v.length - 1; i++) {
for(int j = 0; j < v.length - 1 - i; j++) {
if(v[j] < v[j + 1]) {
int aux = v[j];
v[j] = v[j + 1];
v[j + 1] = aux;
}
}
}
Análise:
A cada iteração do loop interno for
, o código compara v[j]
com v[j + 1]
. Se v[j]
for menor que v[j + 1]
, os valores são trocados. Este é um passo típico do algoritmo de ordenação por bolha (Bubble Sort), mas com uma inversão na comparação, o que resulta em uma ordenação em ordem decrescente.
Vamos agora justificar as alternativas:
A - Espelhamento do Vetor:
Esta alternativa está incorreta. O espelhamento de um vetor envolve reverter a ordem dos elementos, o que não é o caso aqui. O método claramente realiza várias trocas de elementos adjacentes para ordená-los.
B - Ordenação em Ordem Crescente:
Embora o algoritmo seja semelhante ao de ordenação por bolha, a comparação v[j] < v[j + 1]
resulta em uma ordenação decrescente, não crescente. Portanto, esta alternativa está incorreta.
C - Ordenação em Ordem Decrescente:
Correta! Este algoritmo é uma variação do Bubble Sort que ordena os elementos em ordem decrescente, trocando elementos adjacentes quando o elemento atual é menor que o próximo.
D - Inserção de Valor no Meio do Vetor:
Esta alternativa está incorreta. A inserção de um valor no meio do vetor não envolve repetidas trocas de elementos adjacentes, mas sim a movimentação de elementos para abrir espaço para a nova inserção.
E - Inserção de Valor no Final do Vetor:
Esta alternativa também está incorreta. Inserir um valor no final de um vetor não requer a complexidade de dois laços aninhados e trocas de elementos. A operação é muito mais simples.
Em resumo, o método descrito na questão realiza uma ordenação do vetor em ordem decrescente, tornando a alternativa C - Ordenação em Ordem Decrescente a correta.
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
GAB C
È um Bubble Sort. Para saber se é crescente ou decrescente, é só simular uma iteração
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo