Pular para o conteúdo principal

Questão de Arquitetura de Software — Software — FCC 2023

Arquitetura de SoftwareSoftware
Código
fc070432
Banca
FCC
Órgão
TRT - 21ª Região (RN)
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Área: Apoio Especializado - Tecnologia da Informação
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 [1] = temp;}}Para que o método ordenar ordene o vetor recebido em ordem decrescente, a lacuna 1 deve ser preenchida por
  1. Aif(vetor [j] < vetor [indiceMaior]) {indiceMaior = j;}
  2. Bif (vetor[j] <= vetor [indiceMaior]) [indiceMaior = i;}
  3. Cif(vetor [j] > vetor [indiceMaior]) (indiceMaior = j;}
  4. Dif(vetor [j] > vetor [indiceMaior]) (indiceMaior = i;}
  5. Eif(vetor [i] > vetor [indiceMaior]) (indiceMaior = j;}
Revelar gabarito e comentário

GabaritoC — if(vetor [j] > vetor [indiceMaior]) (indiceMaior = j;}

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Java: Ordenação por Seleção (Selection Sort)

Gabarito: letra C. O método implementa o algoritmo de ordenação por seleção (selection sort). Para ordenar em ordem decrescente, o laço interno deve localizar o maior elemento do subvetor não ordenado e armazenar seu índice em indiceMaior. A comparação correta é vetor[j] > vetor[indiceMaior], e quando verdadeira, atualiza-se indiceMaior = j. A alternativa C é exatamente essa.

  1. 1Laço externo (i)
  2. 2indiceMaior = i
  3. 3Laço interno (j)
  4. 4Se vetor[j] > vetor[indiceMaior]
  5. 5indiceMaior = j
  6. 6Troca vetor[i] com vetor[indiceMaior]
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Usa < (menor), o que encontraria o menor elemento — resultaria em ordenação crescente, não decrescente.

Alternativa B — ❌ Incorreta

Usa <= (menor ou igual) e ainda atribui indiceMaior = i (sempre o primeiro índice), o que jamais atualizaria o índice correto. Sintaxe também confusa.

Alternativa C — ✅ Correta ⟵ GABARITO

if(vetor[j] > vetor[indiceMaior]) { indiceMaior = j; } — exatamente o necessário: ao encontrar um elemento maior, atualiza o índice do maior. Após o laço interno, a troca com a posição i coloca o maior elemento no início, construindo a ordem decrescente.

Alternativa D — ❌ Incorreta

A condição > está correta, mas atribui indiceMaior = i, nunca j. O índice do maior jamais seria atualizado, invalidando o algoritmo.

Alternativa E — ❌ Incorreta

Usa vetor[i] no lugar de vetor[indiceMaior] e atribui indiceMaior = j. A comparação é fixa com o primeiro elemento do subvetor (vetor[i]), não com o maior candidato atual. O algoritmo não funcionaria.

PEGA ESSA DICA!

Em algoritmos de ordenação, identifique o tipo de ordenação (crescente/decrescente) e qual elemento deve ser selecionado (menor ou maior). A comparação deve ser feita com o índice que armazena o candidato atual, não com o índice do início do subvetor.

Gabarito: letra C.

Link permanente: /questoes/fc070432