O algoritmo de busca e de ordenação que encontra o menor el...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a A - seleção.
Vamos entender o porquê:
O enunciado da questão descreve um tipo específico de algoritmo de ordenação que realiza as seguintes operações:
- Encontra o menor elemento e o troca com a primeira posição.
- Depois, encontra o segundo menor elemento e o troca com a segunda posição.
- Este processo continua até que o array esteja ordenado.
Este método é conhecido como Ordenação por Seleção (Selection Sort). No Selection Sort, a ideia principal é dividir a lista em duas partes: a parte ordenada e a parte não ordenada. Inicialmente, a parte ordenada está vazia e a parte não ordenada contém todos os elementos. A cada iteração, o menor elemento da parte não ordenada é selecionado e trocado com o primeiro elemento da parte não ordenada, aumentando assim a parte ordenada e diminuindo a não ordenada.
Agora, vamos analisar as alternativas incorretas:
B - inserção: O método de ordenação por inserção (Insertion Sort) trabalha de maneira diferente. Ele constrói a lista ordenada um elemento por vez, pegando cada novo elemento e inserindo-o na posição correta dentro da lista já ordenada. Portanto, não corresponde à descrição fornecida no enunciado.
C - ordenação por fusão (MergeSort): O MergeSort é um algoritmo de ordenação mais avançado que utiliza o paradigma "dividir e conquistar". Ele divide a lista em duas metades, ordena cada metade recursivamente e, em seguida, combina as duas metades ordenadas. Isso é bem diferente do processo descrito no enunciado.
D - ordenação por troca (BubbleSort): O BubbleSort é um algoritmo simples onde cada elemento é comparado com o próximo e trocado se estiver na ordem incorreta. Isso é repetido até que a lista esteja ordenada. Novamente, o processo é diferente do descrito no enunciado, pois o BubbleSort não seleciona o menor elemento e o coloca na posição correta a cada iteração.
Portanto, podemos concluir com segurança que a alternativa A - seleção é a correta, pois o método descrito no enunciado é claramente o Selection Sort.
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
Algoritmo de seleção
Ele usa a seguinte estratégia: seleciona o menor elemento do vetor, depois o segundo menor, depois o terceiro menor, e assim por diante.
Letra A
https://www.ime.usp.br/~pf/algoritmos/aulas/ordena.html
Inserção divide o vetor em 2 (classificado e não classificado).
MergeSort divide para conquistar sucessivamente o vetor, e vai ordenando juntando os vetores.
BubbleSort compara posições adjacentes e vai ordenando o vetor.
@papirobizurado
Gabarito A
A ordenação por seleção (do inglês, selection sort) é um algoritmo de ordenação baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente com os {\displaystyle n-1} elementos restantes, até os últimos dois elementos.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
Força Guerreiro!!!!!!
selection sort usa como referencia o menor Valor, sempre passando ele para a 1° pos do array e comparando ele com os valores seguintes. se outro valor inferior aparecer, ele passara a ocupar a posição atual do valor inferior anterior. selection sort no java:
import java.util.Arrays;
public class SelectionSort{
public static int [] selection (int [] list){
int i,j, minIndex, minValue, temp=0;
for (i=0; i < list.length; i++) {
minValue = list[i];
minIndex = i;
for (j = i; j < list.length; j++ ) {
if (list[j] < minValue) {
minValue = list[j];
minIndex = j;
}
}
if (list[i] > minValue) {
temp = list[i];
list[i] = list[minIndex];
list[minIndex] = temp;
}
}
return list;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr = new int [] {4,13,666,14,87};
selection (arr);
System.out.println(Arrays.toString(arr));
}
}
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo