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.