Acerca de definições de classificação de dados e tipos abstr...

Próximas questões
Com base no mesmo assunto
Q328379 Algoritmos e Estrutura de Dados
Acerca de definições de classificação de dados e tipos abstratos de dados, julgue os itens que se seguem.


O algoritmo de ordenação heapsort refere-se ao processo de divisão, ao meio, do grupo de elementos, repetindo-se a divisão para cada um dos subgrupos, até que esses tenham apenas um elemento. Nesse ponto, faz-se o reagrupamento dos subgrupos, comparando os elementos e trocando-os, se necessário, para que fiquem ordenados. Repete-se esse procedimento até restar um só grupo de elementos.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Vamos analisar a questão proposta, que trata sobre o algoritmo de ordenação heapsort. A alternativa correta é: E - errado.

Primeiramente, é importante entender que o heapsort é um algoritmo de ordenação por seleção baseado em uma estrutura de dados chamada heap. Ele tem um funcionamento específico que não corresponde à descrição dada na questão.

A descrição fornecida na questão refere-se, na verdade, ao algoritmo de ordenação mergesort. Veja por que:

Mergesort: Este algoritmo funciona dividindo recursivamente o conjunto de elementos ao meio até que cada subgrupo tenha apenas um elemento. Em seguida, ele faz o reagrupamento dos subgrupos, comparando e ordenando os elementos na medida em que os subgrupos são combinados para formar um grupo maior. Esse processo continua até que todos os elementos estejam ordenados em um único grupo final.

Heapsort: Por outro lado, o heapsort funciona de maneira diferente. Ele começa construindo um heap máximo (ou mínimo) a partir do conjunto de elementos. Um heap é uma árvore binária onde o elemento pai é maior (ou menor) que os filhos. Depois de construir o heap, o maior elemento (ou menor, dependendo do tipo de heap) é removido e colocado na posição final do array. Esse processo de reorganizar o heap e remover o maior elemento é repetido até que todos os elementos estejam ordenados. Não há divisão dos elementos em subgrupos como descrito na questão.

Agora, vamos revisar a justificativa detalhada para a alternativa incorreta:

Alternativa Errada (E): A descrição fornecida na questão não corresponde ao funcionamento do heapsort. Ela corresponde claramente ao mergesort, que divide o conjunto de elementos repetidamente até obter subgrupos de um elemento, e então realiza a junção ordenada desses subgrupos.

Espero que esta explicação tenha esclarecido a diferença entre os algoritmos heapsort e mergesort e ajudado a entender por que a alternativa correta é a letra E. Se tiver mais dúvidas sobre algoritmos de ordenação ou outros temas de Algoritmos e Estrutura de Dados, estou à disposição para ajudar!

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

Acho que esse é o MergeSort

 

2014

Independentemente do vetor de entrada, o algoritmo Quick Sort divide o vetor ao meio, ordenando cada metade recursivamente e intercalando as duas metades ordenadas.

errada

 

A descrição da questão parece ser do MergeSort.

Gabarito Errado

Essa descrição é do MergeSort.

O MergeSort, ou ordenação por mistura, é um exemplo de algoritmo de ordenação por comparação do tipo dividir-para-conquistar.

Sua ideia básica consiste em Dividir (o problema em vários subproblemas e resolver esses subproblemas através da recursividade) e Conquistar (após todos os subproblemas terem sido resolvidos ocorre a conquista que é a união das resoluções dos subproblemas). Como o algoritmo Merge Sort usa a recursividade, há um alto consumo de memória e tempo de execução, tornando esta técnica não muito eficiente em alguns problemas.

Palavra chave: dividir-para-conquistar.

 

Heapsort

O Heapsort utiliza uma estrutura de dados chamada heap, para ordenar os elementos à medida que os insere na estrutura. Assim, ao final das inserções, os elementos podem ser sucessivamente removidos da raiz da heap, na ordem desejada, lembrando-se sempre de manter a propriedade de max-heap.

A heap pode ser representada como uma árvore (uma árvore binária com propriedades especiais) ou como um vetor. Para uma ordenação decrescente, deve ser construída uma heap mínima (o menor elemento fica na raiz). Para uma ordenação crescente, deve ser construído uma heap máxima (o maior elemento fica na raiz).

Frase chave: ordenar os elementos à medida que os insere na estrutura.

 

 

 

"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !

Força Guerreiro!!!!!!

Clique para visualizar este comentário

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