Um algoritmo bastante simples de implementar é o Selectionsort. Super intuitivo, ajuda novos estudantes de estruturas de dados a compreender melhor como é possível ordenar um arranjo linear unidimensional. Todavia, sua simplicidade de implementação tem um custo alto: o esforço computacional para executar esse algoritmo não costuma ser dos melhores.
OLIVEIRA, Pietro Martins de; LEON, Rogério de. Estrutura de Dados II. Maringá-PR, Unicesumar, 2019.
Observe o código-fonte a seguir:
//Aplica o modo Selectionsort
int Selectionsort(int vec[], int tam){
int i, j, min;
for (i = 0; i < (tam-1); i++)
{
min = i;
for (j = (i+1); j < tam; j++) {
if(vec[j] < vec[min]) {
min = j;
}
}
if (i != min) {
troca(&vec[i], &vec[min]);
}
}
}
//Considere que a função troca() inverte as posições dos parâmetros vec[i] e vec[j] dentro do vetor
Com base no código-fonte apresentado acima, avalie as afirmações a seguir:
I. O algoritmo Selectionsort, acima, ordena o vetor em ordem crescente.
II. Esse algoritmo é tão ineficiente quanto o Bubblesort.
III. As variáveis i e j fazem com que esse algoritmo seja tão rápido quanto o Quicksort.
É correto o que se afirma em:
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
I e II, apenas.
Alternativa 3:
I e III, apenas.
Alternativa 4:
II e III, apenas.
Alternativa 5:
I, II e III.
juliocostamkt:
I e II, apenas.
Soluções para a tarefa
Respondido por
14
Resposta:
I apenas
Explicação:
I. vec[j] < vec[min] -> garante que será crescente
II. Nem o selection nem o bubble são ineficientes. Apenas consomem mais ou menos máquina.
III. As variáveis são auxiliares para percorrer laço for e aparecem na maioria dos métodos.
Perguntas interessantes