O algoritmo de busca e de ordenação que encontra o menor el...

Próximas questões
Com base no mesmo assunto
Q865983 Algoritmos e Estrutura de Dados
O algoritmo de busca e de ordenação que encontra o menor elemento e o troca com a primeira posição, depois o segundo menor com a segunda posição, e assim sucessivamente (n-1 vezes), usa o método de
Alternativas

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

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