MC3305 - Algoritmos e Estruturas de Dados II

Professor: Jesús P. Mena-Chalco
(jesus.mena@ufabc.edu.br)

Quadrimestre 2 - 2014
Aulas: Terça-feira das 19-21hrs. Sala 302-2 (bloco A).
Aulas: Quinta-feira das 21-23hrs. Sala 302-2 (bloco A).

Tidia-ae: MC3305-AED2-noturno

TPI: 2 - 2 - 4

Agenda
Aula   Data   Tópico
1 24/06 Apresentação.
2 26/06 Custos de um algoritmo e funções de complexidade.
3 01/07 Notação assintótica, pesquisa binária e recursividade.
4 03/07 Limite assintótico para a ordenação, ordenação em tempo linear (counting sort, radix sort, bucket sort).
- 08/07 Recesso
5 10/07 Seleção/Ordenação parcial (Seleção, Inserção, Heapsort, Quicksort).
6 15/07 Comparação entre algoritmos de ordenação parcial, Heurísticas de pesquisa.
7 17/07 Árvores binárias: definições.
8 22/07 Árvores binárias de pesquisa: algoritmos de varredura.
- 24/07 Prova 01
9 29/07 Sobre a prova e a Monografia/Projeto.
1031/07 Árvores Adelson-Velskii e Landis (AVL).
1105/08 Árvores Rubro-Negras (Red-Black): definição, propriedades, altura da árvore, algoritmo de inserção.
1207/08 Árvores Rubro-Negras (Red-Black): algoritmo de remoção, considerações práticas.
Árvores digitais (TRIE).
1312/08 Árvores PATRICIA: representação e exemplos de busca, inserção e eliminação.
Tabelas de dispersão: considerações iniciais.
1414/08 Tabelas de dispersão: colisão, funções de dispersão.
1519/08 Conjuntos disjuntos (Union-Find).
1621/08 Árvores B: definição, algoritmo de busca, inserção e remoção.
1726/08 Ordenação externa: características, 2-way sort, merge-sort, double buffering.
1828/08 Revisão.
- 02/09 Prova 02
1904/09 Apresentações de projetos/monografias.
2011/09 Apresentações de projetos/monografias.
- 12/09 Sub. 1 - sexta-feira às 14hrs (sala a confirmar)
- 16/09 Sub. 2 - terça-feira às 19hrs (sala 302-2 - bloco A)

Bibliografia

Ferramentas computacionais Requisito: Algoritmos e Estruturas de Dados I
Ementa: Breve introdução à linguagem C (ou C++). Noções básicas de análise de complexidade de tempo de algoritmos. Representação, organização e gerenciamento de dados em memória primária: listas, filas, pilhas e árvores. Algoritmos de busca: busca sequencial e busca binária. Algoritmos de ordenação: inserção, seleção, bolha, mergesort, heapsort, quicksort. Árvores de busca, árvores balanceadas de busca.