Aula 12

Algoritmos de Ordenação Eficientes: MergeSort e QuickSort

Estruturas de Dados Avançadas

Objetivos Didáticos

  • Paradigma de Divisão e Conquista, MergeSort estável com garantia O(n log n) e custo espacial O(n), QuickSort com partição de Hoare/Lomuto e escolha de pivô mediano.
  • Eficiência assintótica de tempo e espaço
  • Implementação em C com integridade de memória

Conceitos Fundamentais

  • Divisão e Conquista
  • MergeSort O(n log n)
  • QuickSort In-Place
  • Escolha do Pivô
  • Complexidade Pior Caso O(n^2)

Estrutura de Implementação

// Partição de Lomuto para QuickSort O(n log n)
int particionar(int arr[], int baixo, int alto) {
    int pivo = arr[alto];
    int i = (baixo - 1);
    for (int j = baixo; j < alto; j++) {
        if (arr[j] <= pivo) {
            i++;
            i

Próximos Passos

Acesse os Exercícios com Gabarito e o Projeto Prático.