Informática, perguntado por milenacorradibarbosa, 2 meses atrás

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 LuizTozato
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.


wesley50845: I e III Estão corretas! Justificativa - Prova Corrigida.
gabrielfuchs2: I e II é a resposta certa.
Perguntas interessantes