Programação das aulas de MAC0338
Segundo semestre de 2022
CLRS refere-se ao livro de Cormen, Leiserson, Rivest e Stein,
Introduction to Algorithms, 3a edição
(cuidado que as seções mudam de uma edição para a outra),
SW refere-se ao livro de Sedgewick e Wayne, Algorithms, e
KT refere-se ao livro de Kleinberg e Tardos, Algorithm Design.
Agosto
Setembro
- 2 de setembro (aula 6):
- Quicksort probabilístico
- Consumo de tempo esperado
- Select probabilístico
- Consumo de tempo esperado
- Cota inferior para ordenação
- Lista 3
Slides: [pdf]
Leitura recomendada: CLRS secs 7.3 e 7.4 do capítulo
Quicksort e secs 9.1 e 9.2 do capítulo Medians and Order Statistics.
- 5 e 10 de setembro: Semana da Pátria
- 14 de setembro (aula 7)
Slides: [pdf]
Leitura recomendada: CLRS Cap 8 Sorting in Linear Time.
- 16 de setembro (aula 8)
- Divisão e conquista: Karatsuba e Strassen
Slides: [pdf]
Leitura recomendada: KT Sec 5.5 Integer Multiplication
e CLRS Sec 28.2 Strassen's algorithm for matrix multiplication.
Veja também a implementação deste algoritmo e outros na
GNU Multiple Precision Arithmetic Library.
- 21 de setembro (aula 9)
- Select em tempo linear
- Tempo para tirarem dúvidas para a prova
Slides: [pdf]
Leitura recomendada: CLRS Sec 9.3 Selection in worst-case linear time.
- 23 de setembro
Matéria da prova: notação assintótica,
recorrências, análise de pior caso, de melhor caso, de caso médio,
ordenação, análise probabilística, divisão e conquista.
- 28 de setembro (aula 10)
- Programação dinâmica: introdução
- Corte de hastes
- Lista 5 - para você ir olhando
Slides: [pdf]
Leitura recomendada: CLRS Sec 15.1 Dynamic Programming.
- 30 de setembro (aula 11)
- Programação dinâmica
- Produto de cadeias de matrizes
- Subsequência comum mais longa - discussão inicial
- Lista 5 - exercícios para entregar escolhidos
Slides: [pdf]
Leitura recomendada: CLRS secs 15.2 a 15.3.
Outubro
Novembro