Conteúdo / Main content
Menu Rodapé
  1. Início
  2. Cursos
  3. Bioengenharia
  4. Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados

Código 9102
Ano 2
Semestre S2
Créditos ECTS 6
Carga Horária PL(30H)/T(30H)
Área Científica Informática
Tipo de ensino Presencial.
Estágios Não Aplicável.
Objectivos de Aprendizagem Os principais objetivos desta Unidade Curricular são:
- adquirir conhecimentos sobre algoritmia, em particular algoritmos recursivos, de ordenação, de pesquisa e tabelas de Hash, e análise de complexidade dos algoritmos;
- compreender os conceitos fundamentais associados aos vários tipos de estruturas de dados sequenciais (listas ligadas) e não sequenciais (árvores binárias), e dos algoritmos passíveis de aplicação a cada estrutura.

No final da Unidade Curricular o estudante deve ser capaz de
- desenvolver competências de algoritmia, em particular em problemas que envolvam recursividade, ordenação e/ou pesquisa;
- analisar a eficiência dos algoritmos, através da respetiva análise de complexidade, de forma a usar os algoritmos mais eficientes na resolução do problema em questão;
- idealizar, esquematizar e implementar estruturas de dados e respectivos algoritmos com vista à resolução de problemas.
Conteúdos programáticos A - COMPLEXIDADE COMPUTACIONAL DOS ALGORITMOS
1. Big-O
2. Análise Amortizada
B - ESTRUTURAS ABSTRATAS DE DADOS
1. Listas
2. Pilhas
3. Filas
4. Árvores binárias
5. Árvores binárias de pesquisa
C - ÁRVORE BINÁRIA DE PESQUISA BALANCEADA
1. Inserção binária
2. Adelson-Velskii Landis (AVL)
3. Vermelho-Preto (Red-Black)
D - ÁRVORE DE PESQUISA BALANCEADA
1. Árvore 2-3
2. Árvores de Intervalos
E - FILAS DE PRIORIDADE (HEAPS)
1. Binário
2. Binomial
3. Fibonacci
F - GRAFOS
1. Tipos de grafos
2. Representação computacional de um grafo
3. Algoritmos de pesquisa em grafos: em profundidade primeiro e em largura primeiro
4. Problemas envolvendo grafos: Árvore Abrangente Mínima, Caminho Mais Curto, Fluxo Máximo e Emparelhamento Estável
G - STRINGS
1. Conjuntos de Strings
2. Ordenação de Strings: Ordenação por Radix
3. Pesquisa de Strings: Pesquisa Binária
4. Pesquisa de uma substring numa String: Knuth-Morris-Pratt e Boyer-Moore
5. Prefix Tree, Suffix Tree e Suffix Arrays
Metodologias de Ensino e Critérios de Avaliação Para que o estudante possa adquirir as competências exigidas, estão previstas:
- 2h/semana de aulas teóricas (T) para exposição oral dos conceitos teóricos, métodos e algoritmos, utilizando-se ainda a escrita no quadro, a discussão de ideias com os alunos, e a projeção de diapositivos;
- 2h/semana de aulas prático-laboratoriais (PL), nas quais o estudante aplicará e testará os conceitos, os métodos e os algoritmos apresentados nas aulas teóricas, através da resolução de exercícios que constam em fichas criadas para o efeito;
- 2h/semana de tutoria para o esclarecimento de dúvidas e para o acompanhamento dos alunos no desenvolvimento dos seus projetos individuais.
Avaliação:
- 2 mini-testes práticos; cada um vale 2.0 valores.
- 2 testes escritos; cada teste vale 8.0 valores;

Teste escrito 1: 16/04/2024, 18h
Teste escrito 2: 21/05/2024, 18h
Bibliografia principal Bibliografia principal:
- "Estruturas de Dados e Algoritmos em C", Tecnologias de Informação, António Manuel Adrego da Rocha, FCA - Editora Informática, 2008
- "Linguagem C", Luís Damas, FCA - Editora de Informática, 1999
Bibliografia complementar:
- "Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms", By Robert Sedgewick, Addison-Wesley Professional; 3rd Edition, 2001
- "Elementos de Programação com C", 3ª Edição Actualizada e Aumentada, Pedro Guerreiro, FCA - Editora Informática, 2006
Língua Português
Data da última atualização: 2024-06-12
As cookies utilizadas neste sítio web não recolhem informação pessoal que permitam a sua identificação. Ao continuar está a aceitar a política de cookies.