UFC - Ciência da Computação

Construção e Análise de Algoritmos (CK019 / CKP7477)


Plano de Aula:
AulasAssunto
1Introdução: Ordenação por Inserção (análise de tempo e correção)
2Introdução: Ordenação por Inserção (pior caso e melhor caso)
3Complexidade de Tempo (algoritmos recursivos: Torre de Hanoi)
4Notação Assintótica
5Divisão e Conquista (Algoritmo MergeSort)
6Resolução de Recorrências: Árvore de Recursão
7Resolução de Recorrências: Teorema Mestre
8Algoritmo HeapSort
9Algoritmo Quick Sort
10Algoritmo Quick Sort - Análise de pior caso e caso médio
11Limite inferior para ordenação e algoritmos lineares (pdf)
12Outros algoritmos de divisão e conquista
13Exercícios
14Revisão para a Prova
151o prova (notação assintótica, recorrências, ordenação, divisão e conquista)
16Correção de exercícios
17Programação Dinâmica: Fibonacci e Linha de Montagem
18Programação Dinâmica: Subestrutura Ótima
19Programação Dinâmica: Subsequência crescente máxima
20Programação Dinâmica: Multiplicação de sequências de matrizes
21Programação Dinâmica: Algoritmo de Floyd
22Algoritmos Gulosos: Seleção de Atividades e Escalonamento de tarefas
23Algoritmos Gulosos: Códigos de Huffman e outros problemas
24Algoritmos Gulosos: Algoritmos de Prim e Kruskal
25Algoritmos Gulosos: Algoritmos de Dijkstra e Bellman-Ford
26Exercícios
27Exercícios
28Revisão para prova
292o prova (programação dinâmica e algoritmos gulosos)
30Classes de Complexidade de Tempo: Introdução
31Classes P e NP
32Classes P e NP
33Redução Polinomial: SAT, 3-SAT e CLIQUE
34Classe NP-Completa
35NP-Completude: Clique maxima e Cobertura maxima de vértices
36NP-Completude: Caminho hamiltoniano
37NP-Completo: Soma de subconjunto
38Problemas NP-Difíceis e problemas intratáveis
39Exercícios
40Revisão para a prova
413o prova (Classes de complexidade de tempo, reduções polinomiais)
42Exercícios
43Exercícios
44Exercícios
avaliação finalAF