Repositório para guardar algoritmos da matérias Algoritmos e Estruturas de Dados I e II.
Ementa I
-
I. Introdução à complexidade de algoritmos
- Definição de complexidade de algoritmos
-
II. Estruturas lineares
- Representação por arrays
- Representação por encadeamento
- Pesquisa sequencial
- Pesquisa binária
-
III. Ordenação
- Ordenação por seleção
- Ordenação por inserção
- Mergesort
-
IV. Pilhas e filas
- Definição de pilhas e filas
- Operações principais em pilhas e filas
-
V. Listas de prioridade
- Definição de listas de prioridade
- Operações principais em listas de prioridade
- Heapsort
-
VI. Árvores
- Representação de árvores
- Operações principais em árvores
- Percursos em árvores
-
VII. Árvores binárias
- Definição de árvores binárias
- Definição de árvores binárias de busca
- Definição de árvores balanceadas (AVL e B)
-
VIII. Pesquisa digital
- Árvores digitais
- Tries
- Árvores Patrícia
-
IX. Hashing
- Funções hash
- Tratamento de colisões
-
X. Conjuntos
- Representação de conjuntos
- Operações principais em conjuntos
Ementa II
-
I. Medidas de complexidade
- Medidas de complexidade de algoritmos
- Medidas de complexidade de problemas
-
II. Técnicas básicas de construção de algoritmos
- Recursão
- Backtracking
- Programação Dinâmica
- Algoritmo Guloso
- Exemplificação e análise de cada técnica
-
III. Teoria da intratabilidade de problemas
- Classes P e NP
- Método da Redução
- Teorema da Satisfatibilidade
- Problemas pseudo-polinomiais
- Problemas NP-Completos
-
IV. Algoritmos Randômicos e Aproximativos
- Definição de algoritmos randômicos e aproximativos
- Exemplificação e análise de cada técnica