Relativamente à programação estruturada e a métodos de orden...

Próximas questões
Com base no mesmo assunto
Q2464522 Algoritmos e Estrutura de Dados

Relativamente à programação estruturada e a métodos de ordenação, julgue o item subsequente.


Na execução do algoritmo de ordenação por inserção (insertion sort), o número máximo de movimentações em função das comparações entre os itens acontecerá quando, no vetor original, nenhum elemento for maior que seu sucessor.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: E - Errado

Vamos entender o porquê dessa alternativa ser a correta e também mais sobre o conceito de ordenação por inserção (insertion sort).

O Insertion Sort é um algoritmo de ordenação simples e intuitivo, que constrói a sequência final ordenada item por item. Ele percorre o vetor de entrada de forma ordenada e, para cada elemento, o insere na posição correta em relação aos elementos já ordenados à sua esquerda.

Para isso, o insertion sort compara o elemento atual com os elementos à sua esquerda e realiza trocas até encontrar a posição correta. Se o vetor está quase ordenado, o número de comparações e movimentações será pequeno. No entanto, no pior caso, quando o vetor está ordenado de forma decrescente, o algoritmo terá que fazer o máximo número de movimentações e comparações possíveis.

Explicação da Questão:

A questão afirma que "o número máximo de movimentações em função das comparações entre os itens acontecerá quando, no vetor original, nenhum elemento for maior que seu sucessor". Isso quer dizer que a questão sugere que o cenário mais desfavorável para o insertion sort seria quando o vetor está em ordem crescente.

Justificativa da Resposta Correta:

Alternativa E - Errado: No insertion sort, o número máximo de movimentações e comparações ocorre quando o vetor está em ordem decrescente, e não em ordem crescente como a questão sugere. Isso porque, em um vetor ordenado de forma decrescente, cada elemento precisará ser comparado e movimentado até o início do vetor, resultando no maior número de operações possíveis. Portanto, a afirmação está incorreta.

Alternativa C - Certo: Esta alternativa está incorreta porque a afirmação feita na questão não é verdadeira, como explicado anteriormente.

Portanto, ao entender que o pior caso para o insertion sort é um vetor em ordem decrescente, podemos concluir que a resposta correta para a questão é a alternativa E - Errado.

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

Errado. No algoritmo de ordenação por inserção (insertion sort), o número máximo de movimentações ocorre quando o vetor está completamente reverso, ou seja, quando cada elemento é menor que todos os elementos anteriores a ele. Isso porque, em cada iteração, um elemento é movido para sua posição correta, resultando em um número máximo de movimentações. Portanto, a afirmação de que o número máximo de movimentações ocorre quando nenhum elemento é maior que seu sucessor está incorreta.

Ao meu ver, essa questão é pacífica de recurso:

não se pode afirmar que a questão está errada, pois não sem conhecimento do vetor que se está analisando. Vejamos:

se eu passar como parâmetro um vetor em ordem crescente = [ 1, 2, 3, 4, 5], ainda não primeira iteração será analisado que não há movimentações, logo, seu número máximo de movimentações é igual a 0, o que me da a entender que nenhum elemento é maior que o seu sucessor.

Se nenhum número for maior que seu sucessor, então o número de movimentações será 0. Diante disso, temos o valor mínimo de movimentações.

[GABARITO: ERRADO]

No algoritmo de ordenação por inserção (Insertion Sort), o número máximo de movimentações de elementos acontece quando o vetor original está em ordem decrescente. Isso ocorre porque, para cada elemento, o algoritmo precisa mover todos os elementos maiores para a direita para inserir o elemento na posição correta.

Se nenhum elemento for maior que seu sucessor (ou seja, se o vetor estiver em ordem crescente), o algoritmo realiza apenas comparações e nenhuma movimentação. Portanto, o máximo número de movimentações ocorre no pior caso, que é o vetor ordenado de forma inversa.

GABARITO: ERRADO

Essa questão está errada porque o número máximo de movimentações no algoritmo de ordenação por inserção ocorre quando o vetor original está em ordem decrescente, ou seja, quando cada elemento é maior que seu sucessor.

Em tal cenário, cada novo elemento a ser inserido precisa ser comparado e movido para a posição correta, resultando em um número máximo de comparações e movimentações. Quando o vetor está em ordem crescente, nenhum movimento é necessário além do que já foi realizado, tornando o número de movimentações o mínimo possível.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo