Ed
ontem
Vamos analisar cada uma das alternativas para identificar a que representa corretamente um aspecto fundamental dos heaps binários e sua aplicação no Heap Sort: a) O heap binário exige ponteiros explícitos para os filhos, tornando o acesso mais lento, embora preserve a propriedade de dominância. - Isso não é verdade, pois os heaps binários geralmente são implementados usando um vetor, onde o acesso aos filhos é feito através de cálculos de índice, o que é eficiente. b) O Heap Sort é um algoritmo estável, pois sempre preserva a ordem relativa de elementos equivalentes ao realizar as operações de descida. - Na verdade, o Heap Sort não é um algoritmo estável, pois pode alterar a ordem relativa de elementos iguais. c) O heap binário permite inserir elementos em tempo linear, pois cada operação de subida requer percorrer toda a estrutura. - Isso está incorreto, pois a inserção em um heap binário é feita em tempo logarítmico, O(log n), não linear. d) O heap binário, armazenado em vetor, mantém o menor ou maior elemento sempre acessível na raiz, e o Heap Sort utiliza essa propriedade para ordenar vetores in-place com complexidade O(n log n). - Esta afirmação está correta. O heap binário permite acessar rapidamente o menor ou maior elemento (dependendo se é um min-heap ou max-heap) e o Heap Sort utiliza essa propriedade para ordenar os elementos. e) A conversão de uma lista comum em heap pelo método heapify consome tempo exponencial, tornando o uso do heap impraticável para grandes conjuntos. - Isso é falso, pois a operação de heapify tem complexidade O(n), o que é eficiente. Portanto, a alternativa correta é: d) O heap binário, armazenado em vetor, mantém o menor ou maior elemento sempre acessível na raiz, e o Heap Sort utiliza essa propriedade para ordenar vetores in-place com complexidade O(n log n).