Aula 15
Heaps Binários e Filas de Prioridade (Priority Queues)
Estruturas de Dados Avançadas
Objetivos Didáticos
- Propriedade de heap (Min-Heap e Max-Heap), representação compacta em vetor contíguo (pai = i/2, filhos = 2i e 2i+1), operações heapify, inserção e extração em O(log n), e algoritmo HeapSort.
- Eficiência assintótica de tempo e espaço
- Implementação em C com integridade de memória
Conceitos Fundamentais
- Max-Heap e Min-Heap
- Fila de Prioridade
- Heapify O(log n)
- HeapSort O(n log n)
- Representação Vetorial
Estrutura de Implementação
// Max-Heapify em Vetor
void heapify(int arr[], int n, int i) {
int maior = i;
int esq = 2 * i + 1;
int dir = 2 * i + 2;
if (esq < n && arr[esq] > arr[maior]) maior = esq;
if (dir < n && arr[dir] > arr[maior]) maior = dir;
i
Próximos Passos
Acesse os Exercícios com Gabarito e o Projeto Prático.