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.